Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
ignite
GitHub Repository: ignite/cli
Path: blob/main/integration/cosmosgen/cosmosgen_composables_test.go
1007 views
1
package cosmosgen_test
2
3
import (
4
"os"
5
"path/filepath"
6
"testing"
7
8
"github.com/stretchr/testify/assert"
9
"github.com/stretchr/testify/require"
10
11
envtest "github.com/ignite/cli/v29/integration"
12
)
13
14
func TestCosmosGenScaffoldComposables(t *testing.T) {
15
if envtest.IsCI {
16
t.Skip("Skipping TestCosmosGenScaffoldComposables test in CI environment")
17
}
18
19
var (
20
env = envtest.New(t)
21
app = env.ScaffoldApp("github.com/test/blog")
22
)
23
24
const (
25
withMsgModuleName = "withmsg"
26
withoutMsgModuleName = "withoutmsg"
27
)
28
29
app.Scaffold("add custom module with message", false, "module", withMsgModuleName)
30
31
app.Scaffold(
32
"create a message",
33
false,
34
"message",
35
"mymessage",
36
"myfield1",
37
"myfield2:bool",
38
"--module",
39
withMsgModuleName,
40
)
41
42
app.Scaffold(
43
"add custom module without message",
44
false,
45
"module",
46
withoutMsgModuleName,
47
)
48
49
app.Scaffold(
50
"create a type",
51
false,
52
"type",
53
"mytype",
54
"mytypefield",
55
"--module",
56
withoutMsgModuleName,
57
)
58
59
app.Scaffold(
60
"create a query",
61
false,
62
"query",
63
"myQuery",
64
"mytypefield",
65
"--module",
66
withoutMsgModuleName,
67
)
68
69
composablesDirGenerated := filepath.Join(app.SourcePath(), "vue/src/composables")
70
require.NoError(t, os.RemoveAll(composablesDirGenerated))
71
72
app.Scaffold(
73
"scaffold vue",
74
false,
75
"vue",
76
)
77
78
app.Generate(
79
"generate composables",
80
false,
81
"composables",
82
"--clear-cache",
83
)
84
85
expectedQueryModules := []string{
86
"useCosmosAuthV1Beta1",
87
"useCosmosAuthzV1Beta1",
88
"useCosmosBankV1Beta1",
89
"useCosmosBaseTendermintV1Beta1",
90
"useCosmosDistributionV1Beta1",
91
"useCosmosEvidenceV1Beta1",
92
"useCosmosFeegrantV1Beta1",
93
"useCosmosGovV1Beta1",
94
"useCosmosGovV1",
95
"useCosmosGroupV1",
96
"useCosmosMintV1Beta1",
97
"useCosmosNftV1Beta1",
98
"useCosmosParamsV1Beta1",
99
"useCosmosSlashingV1Beta1",
100
"useCosmosStakingV1Beta1",
101
"useCosmosTxV1Beta1",
102
"useCosmosUpgradeV1Beta1",
103
"useCosmosVestingV1Beta1",
104
// custom modules
105
"useBlogBlogV1",
106
"useBlogWithmsgV1",
107
"useBlogWithoutmsgV1",
108
}
109
110
for _, mod := range expectedQueryModules {
111
_, err := os.Stat(filepath.Join(composablesDirGenerated, mod))
112
if assert.False(t, os.IsNotExist(err), "missing composable %q in %s", mod, composablesDirGenerated) {
113
assert.NoError(t, err)
114
}
115
}
116
117
if t.Failed() {
118
// list composables files
119
composablesFiles, err := os.ReadDir(composablesDirGenerated)
120
require.NoError(t, err)
121
t.Log("Composables files:", len(composablesFiles))
122
for _, file := range composablesFiles {
123
t.Logf(" - %s", file.Name())
124
}
125
}
126
}
127
128