mirror of
https://github.com/weaveworks/scope.git
synced 2026-07-18 04:49:55 +00:00
59 lines
2.0 KiB
Go
59 lines
2.0 KiB
Go
package gucumber_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
. "github.com/lsegal/gucumber"
|
|
"github.com/lsegal/gucumber/gherkin"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestRegisterSteps(t *testing.T) {
|
|
count := 0
|
|
str := ""
|
|
fl := 0.0
|
|
|
|
Given(`^I have a test with (\d+)$`, func(i int) { count += i })
|
|
When(`^I have a condition of (\d+) with decimal (-?\d+\.\d+)$`, func(i int64, f float64) { count += int(i); fl = f })
|
|
And(`^I have another condition with "(.+?)"$`, func(s string) { str = s })
|
|
Then(`^something will happen with text$`, func(data string) { str += " " + data })
|
|
And(`^something will happen with a table:$`, func(table gherkin.TabularData) {
|
|
str += " " + table[0][0] + table[0][1] + table[1][0] + table[1][1]
|
|
})
|
|
And(`^something will happen with a table:$`, func(table [][]string) {
|
|
str += " " + table[0][0] + table[0][1] + table[1][0] + table[1][1]
|
|
})
|
|
And(`^I can pass in test (.+?)$`, func(tt *testing.T, data string) {
|
|
assert.Equal(t, t, tt)
|
|
str += " " + data
|
|
})
|
|
|
|
found, err := GlobalContext.Execute(t, "I have a test with 3", "")
|
|
GlobalContext.Execute(t, "I have a condition of 5 with decimal -3.14159", "")
|
|
GlobalContext.Execute(t, "I have another condition with \"arbitrary text\"", "")
|
|
GlobalContext.Execute(t, "something will happen with text", "and hello world")
|
|
GlobalContext.Execute(t, "something will happen with a table:", "| a | b |\n| c | d |")
|
|
GlobalContext.Execute(t, "I can pass in test context", "")
|
|
|
|
assert.NoError(t, err)
|
|
assert.Equal(t, true, found)
|
|
|
|
assert.Equal(t, 8, count)
|
|
assert.Equal(t, "arbitrary text and hello world abcd abcd context", str)
|
|
assert.Equal(t, -3.14159, fl)
|
|
}
|
|
|
|
func TestDifferentArgCount(t *testing.T) {
|
|
Given(`^an arg mismatch$`, func(i int) {})
|
|
f, err := GlobalContext.Execute(t, "an arg mismatch", "")
|
|
|
|
assert.EqualError(t, err, "matcher function has different arity 0 != 1")
|
|
assert.Equal(t, true, f)
|
|
}
|
|
|
|
func TestNoMatches(t *testing.T) {
|
|
f, err := GlobalContext.Execute(t, "something that won't be matched", "")
|
|
assert.NoError(t, err)
|
|
assert.Equal(t, false, f)
|
|
}
|