cli: mark required flags of generate-* command

This commit is contained in:
AnnaShaleva 2022-03-22 14:56:50 +03:00 committed by Anna Shaleva
parent d9af122be5
commit 2334166423
2 changed files with 16 additions and 13 deletions

View file

@ -19,16 +19,19 @@ var generatorFlags = []cli.Flag{
Usage: "Configuration file to use", Usage: "Configuration file to use",
}, },
cli.StringFlag{ cli.StringFlag{
Name: "manifest, m", Name: "manifest, m",
Usage: "Read contract manifest (*.manifest.json) file", Required: true,
Usage: "Read contract manifest (*.manifest.json) file",
}, },
cli.StringFlag{ cli.StringFlag{
Name: "out, o", Name: "out, o",
Usage: "Output of the compiled contract", Required: true,
Usage: "Output of the compiled contract",
}, },
cli.StringFlag{ cli.StringFlag{
Name: "hash", Name: "hash",
Usage: "Smart-contract hash", Required: true,
Usage: "Smart-contract hash",
}, },
} }

View file

@ -415,18 +415,18 @@ func TestGenerate_Errors(t *testing.T) {
require.True(t, strings.Contains(err.Error(), msg), "got: %v", err) require.True(t, strings.Contains(err.Error(), msg), "got: %v", err)
} }
t.Run("invalid hash", func(t *testing.T) { t.Run("invalid hash", func(t *testing.T) {
checkError(t, "invalid contract hash", "--hash", "xxx") checkError(t, "invalid contract hash", "--hash", "xxx", "--manifest", "yyy", "--out", "zzz")
}) })
t.Run("missing manifest argument", func(t *testing.T) { t.Run("missing manifest argument", func(t *testing.T) {
checkError(t, errNoManifestFile.Error(), "--hash", util.Uint160{}.StringLE()) checkError(t, "Required flag \"manifest\" not set", "--hash", util.Uint160{}.StringLE(), "--out", "zzz")
}) })
t.Run("missing manifest file", func(t *testing.T) { t.Run("missing manifest file", func(t *testing.T) {
checkError(t, "can't read contract manifest", "--manifest", "notexists", "--hash", util.Uint160{}.StringLE()) checkError(t, "can't read contract manifest", "--manifest", "notexists", "--hash", util.Uint160{}.StringLE(), "--out", "zzz")
}) })
t.Run("empty manifest", func(t *testing.T) { t.Run("empty manifest", func(t *testing.T) {
manifestFile := filepath.Join(t.TempDir(), "invalid.json") manifestFile := filepath.Join(t.TempDir(), "invalid.json")
require.NoError(t, os.WriteFile(manifestFile, []byte("[]"), os.ModePerm)) require.NoError(t, os.WriteFile(manifestFile, []byte("[]"), os.ModePerm))
checkError(t, "json: cannot unmarshal array into Go value of type manifest.Manifest", "--manifest", manifestFile, "--hash", util.Uint160{}.StringLE()) checkError(t, "json: cannot unmarshal array into Go value of type manifest.Manifest", "--manifest", manifestFile, "--hash", util.Uint160{}.StringLE(), "--out", "zzz")
}) })
t.Run("invalid manifest", func(t *testing.T) { t.Run("invalid manifest", func(t *testing.T) {
manifestFile := filepath.Join(t.TempDir(), "invalid.json") manifestFile := filepath.Join(t.TempDir(), "invalid.json")
@ -434,7 +434,7 @@ func TestGenerate_Errors(t *testing.T) {
rawManifest, err := json.Marshal(m) rawManifest, err := json.Marshal(m)
require.NoError(t, err) require.NoError(t, err)
require.NoError(t, os.WriteFile(manifestFile, rawManifest, os.ModePerm)) require.NoError(t, os.WriteFile(manifestFile, rawManifest, os.ModePerm))
checkError(t, "ABI: no methods", "--manifest", manifestFile, "--hash", util.Uint160{}.StringLE()) checkError(t, "ABI: no methods", "--manifest", manifestFile, "--hash", util.Uint160{}.StringLE(), "--out", "zzz")
}) })
manifestFile := filepath.Join(t.TempDir(), "manifest.json") manifestFile := filepath.Join(t.TempDir(), "manifest.json")
@ -452,7 +452,7 @@ func TestGenerate_Errors(t *testing.T) {
t.Run("missing config", func(t *testing.T) { t.Run("missing config", func(t *testing.T) {
checkError(t, "can't read config file", checkError(t, "can't read config file",
"--manifest", manifestFile, "--hash", util.Uint160{}.StringLE(), "--manifest", manifestFile, "--hash", util.Uint160{}.StringLE(),
"--config", filepath.Join(t.TempDir(), "not.exists.yml")) "--config", filepath.Join(t.TempDir(), "not.exists.yml"), "--out", "zzz")
}) })
t.Run("invalid config", func(t *testing.T) { t.Run("invalid config", func(t *testing.T) {
rawCfg := `package: wrapper rawCfg := `package: wrapper
@ -464,6 +464,6 @@ callflags:
checkError(t, "can't parse config file", checkError(t, "can't parse config file",
"--manifest", manifestFile, "--hash", util.Uint160{}.StringLE(), "--manifest", manifestFile, "--hash", util.Uint160{}.StringLE(),
"--config", cfgPath) "--config", cfgPath, "--out", "zzz")
}) })
} }