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}