PathrockNetwork Gno Explorer
HomeBlocksTransactionsTokensRealmsPackagesValidatorsAnalytics

PathrockNetwork Gno Explorer — an independent explorer for Gno.land Mainnet (gnoland-1), operated by PathrockNetwork. Not an official Gno.land service.

gnowebarchive RPC

gno.land/p/g17khqpukees4237dtn3astzapmp462vjhsz6st4/expect

Package
Open in gnoweb ↗

Overview

Kind
Pure package
Name
expect
Namespace
g17khqpukees4237dtn3astzapmp462vjhsz6st4
Files
13 (README)(gnomod.toml)
Exported functions
n/a — not supported for pure packages by the node (vm/qfuncs)
Module
gno.land/p/g17khqpukees4237dtn3astzapmp462vjhsz6st4/expect
gno
0.9

Files (13)

  • README.mdmarkdown
  • gnomod.tomltoml
  • boolean.gnogno
  • context.gnogno
  • doc.gnogno
  • error.gnogno
  • float.gnogno
  • func.gnogno
  • int.gnogno
  • message.gnogno
  • string.gnogno
  • uint.gnogno
  • value.gnogno
README.mdPreviewRaw
# Expect Package

Package for testing Gno packages and realms using function chaining and expressive semantics.

## Asserting Values

Use `Value()` to check that a value meets expectations. Chain `Not()` to negate an assertion,
and use `AsInt()`, `AsString()`, `AsBoolean()` (and similar) to narrow to type-specific assertions.

[embedmd]:# (readme_value_test.gno go)
```go
package expect_test

import (
	"errors"
	"testing"

	"gno.land/p/g17khqpukees4237dtn3astzapmp462vjhsz6st4/expect"
)

func TestReadmeValue(t *testing.T) {
	// Assert integer value
	score := 42
	expect.Value(t, score).ToEqual(42)
	expect.Value(t, score).Not().ToEqual(0)
	expect.Value(t, score).AsInt().ToBeLowerThan(100)

	// Assert string value
	name := "Alice"
	expect.Value(t, name).AsString().ToEqual("Alice")
	expect.Value(t, name).AsString().ToHaveLength(5)

	// Assert boolean value
	expect.Value(t, true).AsBoolean().ToBeTruthy()

	// Assert pointer value
	var v any
	expect.Value(t, v).ToBeNil()

	// Assert error value
	err := errors.New("foo bar")
	expect.Value(t, err).ToEqual(err)
	expect.Value(t, err).ToContainErrorString("foo")
}
```

## Asserting Functions

Use `Func()` to check that a function returns an error, panics, or returns an expected value.
Chain `.ToFail()`, `.ToPanic()`, or `.ToReturn()` and then assert the message or value.

Package supports four type of functions:

- func()
- func() any
- func() error
- func() (any, error)

[embedmd]:# (readme_func_test.gno go)
```go
package expect_test

import (
	"errors"
	"testing"

	"gno.land/p/g17khqpukees4237dtn3astzapmp462vjhsz6st4/expect"
)

func TestReadmeFunc(t *testing.T) {
	foo := func() int {
		return 42
	}

	fooPanic := func() {
		panic("boom!")
	}

	err := errors.New("boom!")
	fooError := func(err error) error {
		return err
	}

	// Assert that "fooError" function returns an error
	expect.Func(t, func() error {
		return fooError(err)
	}).ToFail().WithError(err)

	// Assert that "fooPanic" function panics with a message
	expect.Func(t, func() {
		fooPanic()
	}).ToPanic().WithMessage("boom!")

	// Assert that "foo" function returns 42
	expect.Func(t, func() any {
		return foo()
	}).ToReturn(42)
}
```

Functions

not supported for pure packages by the node (vm/qfuncs)

Signatures reconstructed verbatim from vm/qfuncs — interface params keep their inline definitions.