package commands import ( "testing" "gx/ipfs/QmP9vZfc5WSjfGTXmwX2EcicMFzmZ6fXn7HTdKYat6ccmH/go-ipfs-cmds" "gx/ipfs/QmQp2a2Hhb7F6eK2A5hN8f9aJy4mtkEikL9Zj4cgB7d1dD/go-ipfs-cmdkit" ) func TestGetOutputPath(t *testing.T) { cases := []struct { args []string opts cmdkit.OptMap outPath string }{ { args: []string{"/ipns/multiformats.io/"}, opts: map[string]interface{}{ "output": "takes-precedence", }, outPath: "takes-precedence", }, { args: []string{"/ipns/multiformats.io/", "some-other-arg-to-be-ignored"}, opts: cmdkit.OptMap{ "output": "takes-precedence", }, outPath: "takes-precedence", }, { args: []string{"/ipns/multiformats.io/"}, outPath: "multiformats.io", opts: cmdkit.OptMap{}, }, { args: []string{"/ipns/multiformats.io/logo.svg/"}, outPath: "logo.svg", opts: cmdkit.OptMap{}, }, { args: []string{"/ipns/multiformats.io", "some-other-arg-to-be-ignored"}, outPath: "multiformats.io", opts: cmdkit.OptMap{}, }, } defOpts, err := GetCmd.GetOptions([]string{}) if err != nil { t.Fatalf("error getting default command options: %v", err) } for _, tc := range cases { req, err := cmds.NewRequest([]string{}, tc.opts, tc.args, nil, GetCmd, defOpts) if err != nil { t.Fatalf("error creating a command request: %v", err) } if outPath := getOutPath(req); outPath != tc.outPath { t.Errorf("expected outPath %s to be %s", outPath, tc.outPath) } } }