mirror of
https://github.com/MontFerret/ferret.git
synced 2025-02-07 13:31:56 +02:00
2643321e0f
* Switched to Lab for e2e tests * Switched to binary * Updated lab installation * Updated use of Lab installer * updates * Changed lab installation path * Updated use of installer * Works * Added additional functions * Updated some tests * Updated go.sum * Works * Refactored assertions * Added tests for testing.True * Added tests for testing.None * Added tests for testing.Lte * Added tests for testing.Lt * Added generic consturctor * Added tests for testing.Len * Added tests for testing.Gte * Added tests for testing.Gt * Added tests for testing.False * Added tests for testing.Empty * Added tests for testing.Fail * Added tests for testing.Equal * Added tests for testing.Include * Updated urls in static page tests * Fixed namespace unit tests * Fixed unit test for testing.Len * Updated E2E scripts * Updaes * Updated Chrome in CI/CD * Added e2e for example test click.fql * Added suite cases for example scripts * Updated examples * Updated * Added type assertions * Updated Chrome opts and disabled headers and cookies related tests * Fixed iframes example * Increased timeouts in navigation examples * Updated value example * Updated comments * Disabled cookies examples * Fixed static url * Disabled headers examples * Disabled UA test * Simplified wait logic * Added base testing module * Fixes after codereview * Disabled failing tests
208 lines
5.1 KiB
Go
208 lines
5.1 KiB
Go
package testing_test
|
|
|
|
import (
|
|
"context"
|
|
t "testing"
|
|
|
|
. "github.com/smartystreets/goconvey/convey"
|
|
|
|
"github.com/MontFerret/ferret/pkg/runtime/core"
|
|
"github.com/MontFerret/ferret/pkg/runtime/values"
|
|
"github.com/MontFerret/ferret/pkg/stdlib/testing"
|
|
"github.com/MontFerret/ferret/pkg/stdlib/testing/base"
|
|
)
|
|
|
|
func TestEmpty(t *t.T) {
|
|
Empty := base.NewPositiveAssertion(testing.Empty)
|
|
|
|
Convey("When arg is not passed", t, func() {
|
|
Convey("It should return an error", func() {
|
|
_, err := Empty(context.Background())
|
|
|
|
So(err, ShouldBeError)
|
|
|
|
_, err = Empty(context.Background(), values.NewInt(1))
|
|
|
|
So(err, ShouldBeError)
|
|
})
|
|
})
|
|
|
|
Convey("When arg are not measurable", t, func() {
|
|
Convey("It should return an error", func() {
|
|
_, err := Empty(context.Background(), values.NewInt(1))
|
|
|
|
So(err, ShouldBeError)
|
|
})
|
|
})
|
|
|
|
Convey("When arg is a string", t, func() {
|
|
Convey("When 'Foo'", func() {
|
|
Convey("It should return an error", func() {
|
|
_, err := Empty(context.Background(), values.NewString("Foo"))
|
|
|
|
So(err, ShouldBeError)
|
|
So(err.Error(), ShouldEqual, core.Error(base.ErrAssertion, "expected [string] 'Foo' to be empty").Error())
|
|
})
|
|
})
|
|
|
|
Convey("When ''", func() {
|
|
Convey("It should not return an error", func() {
|
|
_, err := Empty(context.Background(), values.NewString(""))
|
|
|
|
So(err, ShouldBeNil)
|
|
})
|
|
})
|
|
})
|
|
|
|
Convey("When arg is an array", t, func() {
|
|
Convey("When [1,2,3]", func() {
|
|
Convey("It should return an error", func() {
|
|
_, err := Empty(
|
|
context.Background(),
|
|
values.NewArrayWith(values.NewInt(1), values.NewInt(2), values.NewInt(3)),
|
|
)
|
|
|
|
So(err, ShouldBeError)
|
|
So(err.Error(), ShouldEqual, core.Error(base.ErrAssertion, "expected [array] '[1,2,3]' to be empty").Error())
|
|
})
|
|
})
|
|
|
|
Convey("When []", func() {
|
|
Convey("It should not return an error", func() {
|
|
_, err := Empty(
|
|
context.Background(),
|
|
values.NewArray(0),
|
|
)
|
|
|
|
So(err, ShouldBeNil)
|
|
})
|
|
})
|
|
})
|
|
|
|
Convey("When arg is an object", t, func() {
|
|
Convey("When { a: 1, b: 2, c: 3 }", func() {
|
|
Convey("It should return an error", func() {
|
|
_, err := Empty(
|
|
context.Background(),
|
|
values.NewObjectWith(
|
|
values.NewObjectProperty("a", values.NewInt(1)),
|
|
values.NewObjectProperty("b", values.NewInt(2)),
|
|
values.NewObjectProperty("c", values.NewInt(3)),
|
|
),
|
|
)
|
|
|
|
So(err, ShouldBeError)
|
|
So(err.Error(), ShouldEqual, core.Error(base.ErrAssertion, "expected [object] '{\"a\":1,\"b\":2,\"c\":3}' to be empty").Error())
|
|
})
|
|
})
|
|
|
|
Convey("When {}", func() {
|
|
Convey("It should not return an error", func() {
|
|
_, err := Empty(
|
|
context.Background(),
|
|
values.NewObject(),
|
|
)
|
|
|
|
So(err, ShouldBeNil)
|
|
})
|
|
})
|
|
})
|
|
}
|
|
|
|
func TestNotEmpty(t *t.T) {
|
|
NotEmpty := base.NewNegativeAssertion(testing.Empty)
|
|
|
|
Convey("When arg is not passed", t, func() {
|
|
Convey("It should return an error", func() {
|
|
_, err := NotEmpty(context.Background())
|
|
|
|
So(err, ShouldBeError)
|
|
|
|
_, err = NotEmpty(context.Background(), values.NewInt(1))
|
|
|
|
So(err, ShouldBeError)
|
|
})
|
|
})
|
|
|
|
Convey("When arg are not measurable", t, func() {
|
|
Convey("It should return an error", func() {
|
|
_, err := NotEmpty(context.Background(), values.NewInt(1))
|
|
|
|
So(err, ShouldBeError)
|
|
})
|
|
})
|
|
|
|
Convey("When arg is a string", t, func() {
|
|
Convey("When 'Foo'", func() {
|
|
Convey("It should not return an error", func() {
|
|
_, err := NotEmpty(context.Background(), values.NewString("Foo"))
|
|
|
|
So(err, ShouldBeNil)
|
|
})
|
|
})
|
|
|
|
Convey("When ''", func() {
|
|
Convey("It should return an error", func() {
|
|
_, err := NotEmpty(context.Background(), values.NewString(""))
|
|
|
|
So(err, ShouldBeError)
|
|
So(err.Error(), ShouldEqual, core.Error(base.ErrAssertion, "expected [string] '' not to be empty").Error())
|
|
})
|
|
})
|
|
})
|
|
|
|
Convey("When arg is an array", t, func() {
|
|
Convey("When [1,2,3]", func() {
|
|
Convey("It should not return an error", func() {
|
|
_, err := NotEmpty(
|
|
context.Background(),
|
|
values.NewArrayWith(values.NewInt(1), values.NewInt(2), values.NewInt(3)),
|
|
)
|
|
|
|
So(err, ShouldBeNil)
|
|
})
|
|
})
|
|
|
|
Convey("When []", func() {
|
|
Convey("It should return an error", func() {
|
|
_, err := NotEmpty(
|
|
context.Background(),
|
|
values.NewArray(0),
|
|
)
|
|
|
|
So(err, ShouldBeError)
|
|
So(err.Error(), ShouldEqual, core.Error(base.ErrAssertion, "expected [array] '[]' not to be empty").Error())
|
|
})
|
|
})
|
|
})
|
|
|
|
Convey("When arg is an object", t, func() {
|
|
Convey("When { a: 1, b: 2, c: 3 }", func() {
|
|
Convey("It should not return an error", func() {
|
|
_, err := NotEmpty(
|
|
context.Background(),
|
|
values.NewObjectWith(
|
|
values.NewObjectProperty("a", values.NewInt(1)),
|
|
values.NewObjectProperty("b", values.NewInt(2)),
|
|
values.NewObjectProperty("c", values.NewInt(3)),
|
|
),
|
|
)
|
|
|
|
So(err, ShouldBeNil)
|
|
})
|
|
})
|
|
|
|
Convey("When {}", func() {
|
|
Convey("It should not return an error", func() {
|
|
_, err := NotEmpty(
|
|
context.Background(),
|
|
values.NewObject(),
|
|
)
|
|
|
|
So(err, ShouldBeError)
|
|
So(err.Error(), ShouldEqual, core.Error(base.ErrAssertion, "expected [object] '{}' not to be empty").Error())
|
|
})
|
|
})
|
|
})
|
|
}
|