1
0
mirror of https://github.com/MontFerret/ferret.git synced 2025-02-07 13:31:56 +02:00
ferret/pkg/stdlib/testing/empty_test.go
Tim Voronov 2643321e0f
Migration to lab (#526)
* 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
2020-06-17 17:37:01 -04:00

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())
})
})
})
}