Search Apps Documentation Source Content File Folder Download Copy Actions Download

create_test.gno

1.86 Kb ยท 71 lines
 1package forms
 2
 3import (
 4	"testing"
 5
 6	"gno.land/p/nt/testutils"
 7	"gno.land/p/nt/urequire"
 8)
 9
10func TestCreateForm(t *testing.T) {
11	alice := testutils.TestAddress("alice")
12	testing.SetOriginCaller(alice)
13	testing.SetRealm(testing.NewUserRealm(alice))
14
15	db := NewDB()
16	title := "Simple Form"
17	description := "This is a form"
18	openAt := "2021-01-01T00:00:00Z"
19	closeAt := "2021-01-02T00:00:00Z"
20	data := `[
21		{
22			"label": "Name",
23			"fieldType": "string",
24			"required": true
25		},
26		{
27			"label": "Age",
28			"fieldType": "number",
29			"required": false
30		},
31		{
32			"label": "Is this a test?",
33			"fieldType": "boolean",
34			"required": false
35		},
36		{
37			"label": "Favorite Food",
38			"fieldType": "['Pizza', 'Schnitzel', 'Burger']",
39			"required": true
40		},
41		{
42			"label": "Favorite Foods",
43			"fieldType": "{'Pizza', 'Schnitzel', 'Burger'}",
44			"required": true
45		}
46	]`
47
48	urequire.NotPanics(t, func() {
49		id, err := db.CreateForm(title, description, openAt, closeAt, data)
50		if err != nil {
51			panic(err)
52		}
53		urequire.True(t, id != "", "Form ID is empty")
54
55		form, err := db.GetForm(id)
56		if err != nil {
57			panic(err)
58		}
59
60		urequire.True(t, form.ID == id, "Form ID is not correct")
61		urequire.Equal(t, form.Owner, alice, "Owner is not correct")
62		urequire.True(t, form.Title == title, "Title is not correct")
63		urequire.True(t, form.Description == description, "Description is not correct")
64		urequire.True(t, len(form.Fields) == 5, "Not enough fields were provided")
65		urequire.True(t, form.Fields[0].Label == "Name", "Field 0 label is not correct")
66		urequire.True(t, form.Fields[0].FieldType == "string", "Field 0 type is not correct")
67		urequire.True(t, form.Fields[0].Required == true, "Field 0 required is not correct")
68		urequire.True(t, form.Fields[1].Label == "Age", "Field 1 label is not correct")
69		urequire.True(t, form.Fields[1].FieldType == "number", "Field 1 type is not correct")
70	})
71}