Skip to content Search Apps Documentation Source Content File Folder Download Copy Actions State String Boolean Number Struct Map Slice Pointer Function Closure Reference Nil Package Type Interface Unknown

Community realm. Read the code first. Community realm, deployed by its author. Read the code before you interact or send coins.

message.gno

1.14 Kb · 41 lines
 1package expect
 2
 3import "gno.land/p/nt/ufmt/v0"
 4
 5const (
 6	MessageTypeCrossPanic MessageType = "cross panic"
 7	MessageTypeError                  = "error"
 8	MessageTypePanic                  = "panic"
 9)
10
11// MessageType defines a type for message checker errors.
12type MessageType string
13
14// NewMessageChecker creates a new checker for text messages.
15func NewMessageChecker(ctx Context, msg string, t MessageType) MessageChecker {
16	return MessageChecker{ctx, msg, t}
17}
18
19// MessageChecker asserts text messages.
20type MessageChecker struct {
21	ctx     Context
22	msg     string
23	msgType MessageType
24}
25
26// Not negates the next called expectation.
27func (c MessageChecker) Not() MessageChecker {
28	c.ctx.negated = !c.ctx.negated
29	return c
30}
31
32// WithMessage asserts that a message is equal to an expected message.
33func (c MessageChecker) WithMessage(msg string) {
34	c.ctx.T().Helper()
35	c.ctx.CheckExpectation(c.msg == msg, func(ctx Context) string {
36		if !ctx.IsNegated() {
37			return ufmt.Sprintf("Expected %s message to match\nGot: %s\nWant: %s", string(c.msgType), c.msg, msg)
38		}
39		return ufmt.Sprintf("Expected %s message to be different\nGot: %s", string(c.msgType), c.msg)
40	})
41}