mirror of
https://github.com/coder/coder.git
synced 2025-03-14 10:09:57 +00:00
Joins in fields like `username`, `avatar_url`, `organization_name`, `template_name` to `workspaces` via a **view**. The view must be maintained moving forward, but this prevents needing to add RBAC permissions to fetch related workspace fields.
46 lines
1.3 KiB
Go
46 lines
1.3 KiB
Go
package cli_test
|
|
|
|
import (
|
|
"bytes"
|
|
"testing"
|
|
|
|
"github.com/coder/coder/v2/cli/clitest"
|
|
"github.com/coder/coder/v2/coderd/coderdtest"
|
|
"github.com/coder/coder/v2/coderd/database"
|
|
"github.com/coder/coder/v2/coderd/database/dbfake"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestFavoriteUnfavorite(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
var (
|
|
client, db = coderdtest.NewWithDatabase(t, nil)
|
|
owner = coderdtest.CreateFirstUser(t, client)
|
|
memberClient, member = coderdtest.CreateAnotherUser(t, client, owner.OrganizationID)
|
|
ws = dbfake.WorkspaceBuild(t, db, database.WorkspaceTable{OwnerID: member.ID, OrganizationID: owner.OrganizationID}).Do()
|
|
)
|
|
|
|
inv, root := clitest.New(t, "favorite", ws.Workspace.Name)
|
|
clitest.SetupConfig(t, memberClient, root)
|
|
|
|
var buf bytes.Buffer
|
|
inv.Stdout = &buf
|
|
err := inv.Run()
|
|
require.NoError(t, err)
|
|
|
|
updated := coderdtest.MustWorkspace(t, memberClient, ws.Workspace.ID)
|
|
require.True(t, updated.Favorite)
|
|
|
|
buf.Reset()
|
|
|
|
inv, root = clitest.New(t, "unfavorite", ws.Workspace.Name)
|
|
clitest.SetupConfig(t, memberClient, root)
|
|
inv.Stdout = &buf
|
|
err = inv.Run()
|
|
require.NoError(t, err)
|
|
updated = coderdtest.MustWorkspace(t, memberClient, ws.Workspace.ID)
|
|
require.False(t, updated.Favorite)
|
|
}
|