diff --git a/vault/system_test.go b/vault/system_test.go index 32856c4bba..a4509431eb 100644 --- a/vault/system_test.go +++ b/vault/system_test.go @@ -49,3 +49,89 @@ func TestSystem_mounts(t *testing.T) { t.Fatalf("got: %#v", resp.Data) } } + +func TestSystem_mount_help(t *testing.T) { + s := testSystem(t) + + req := &Request{ + Operation: HelpOperation, + Path: "mount/prod/secret/", + } + resp, err := s.HandleRequest(req) + if err != nil { + t.Fatalf("err: %v", err) + } + if resp.Data["help"] != "used to mount or unmount a path" { + t.Fatalf("got: %#v", resp.Data) + } +} + +func TestSystem_mount(t *testing.T) { + s := testSystem(t) + + req := &Request{ + Operation: WriteOperation, + Path: "mount/prod/secret/", + Data: map[string]interface{}{ + "type": "generic", + }, + } + resp, err := s.HandleRequest(req) + if err != nil { + t.Fatalf("err: %v", err) + } + if resp != nil { + t.Fatalf("bad: %v", resp) + } +} + +func TestSystem_mount_invalid(t *testing.T) { + s := testSystem(t) + + req := &Request{ + Operation: WriteOperation, + Path: "mount/prod/secret/", + Data: map[string]interface{}{ + "type": "what", + }, + } + resp, err := s.HandleRequest(req) + if err != ErrInvalidRequest { + t.Fatalf("err: %v", err) + } + if resp.Data["error"] != "unknown logical backend type: what" { + t.Fatalf("bad: %v", resp) + } +} + +func TestSystem_unmount(t *testing.T) { + s := testSystem(t) + + req := &Request{ + Operation: DeleteOperation, + Path: "mount/secret/", + } + resp, err := s.HandleRequest(req) + if err != nil { + t.Fatalf("err: %v", err) + } + if resp != nil { + t.Fatalf("bad: %v", resp) + } +} + +func TestSystem_unmount_invalid(t *testing.T) { + s := testSystem(t) + + req := &Request{ + Operation: DeleteOperation, + Path: "mount/foo/", + } + resp, err := s.HandleRequest(req) + if err != ErrInvalidRequest { + t.Fatalf("err: %v", err) + } + if resp.Data["error"] != "no matching mount" { + t.Fatalf("bad: %v", resp) + } +}