Skip to content

Commit 94987d2

Browse files
committed
table tests
1 parent d907ef2 commit 94987d2

File tree

1 file changed

+47
-52
lines changed

1 file changed

+47
-52
lines changed

cli/notifications_test.go

Lines changed: 47 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -16,32 +16,55 @@ import (
1616
"github.com/coder/coder/v2/testutil"
1717
)
1818

19-
func TestPauseNotifications(t *testing.T) {
19+
func TestNotifications(t *testing.T) {
2020
t.Parallel()
2121

22-
// given
23-
ownerClient, db := coderdtest.NewWithDatabase(t, nil)
24-
_ = coderdtest.CreateFirstUser(t, ownerClient)
25-
26-
// when
27-
inv, root := clitest.New(t, "notifications", "pause")
28-
clitest.SetupConfig(t, ownerClient, root)
29-
30-
var buf bytes.Buffer
31-
inv.Stdout = &buf
32-
err := inv.Run()
33-
require.NoError(t, err)
34-
35-
// then
36-
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitShort)
37-
t.Cleanup(cancel)
38-
settingsJSON, err := db.GetNotificationsSettings(ctx)
39-
require.NoError(t, err)
40-
41-
var settings codersdk.NotificationsSettings
42-
err = json.Unmarshal([]byte(settingsJSON), &settings)
43-
require.NoError(t, err)
44-
require.True(t, settings.NotifierPaused)
22+
tests := []struct {
23+
name string
24+
command string
25+
expectPaused bool
26+
}{
27+
{
28+
name: "PauseNotifications",
29+
command: "pause",
30+
expectPaused: true,
31+
},
32+
{
33+
name: "ResumeNotifications",
34+
command: "resume",
35+
expectPaused: false,
36+
},
37+
}
38+
39+
for _, tt := range tests {
40+
t.Run(tt.name, func(t *testing.T) {
41+
t.Parallel()
42+
43+
// given
44+
ownerClient, db := coderdtest.NewWithDatabase(t, nil)
45+
_ = coderdtest.CreateFirstUser(t, ownerClient)
46+
47+
// when
48+
inv, root := clitest.New(t, "notifications", tt.command)
49+
clitest.SetupConfig(t, ownerClient, root)
50+
51+
var buf bytes.Buffer
52+
inv.Stdout = &buf
53+
err := inv.Run()
54+
require.NoError(t, err)
55+
56+
// then
57+
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitShort)
58+
t.Cleanup(cancel)
59+
settingsJSON, err := db.GetNotificationsSettings(ctx)
60+
require.NoError(t, err)
61+
62+
var settings codersdk.NotificationsSettings
63+
err = json.Unmarshal([]byte(settingsJSON), &settings)
64+
require.NoError(t, err)
65+
require.Equal(t, tt.expectPaused, settings.NotifierPaused)
66+
})
67+
}
4568
}
4669

4770
func TestPauseNotifications_RegularUser(t *testing.T) {
@@ -76,31 +99,3 @@ func TestPauseNotifications_RegularUser(t *testing.T) {
7699
require.NoError(t, err)
77100
require.False(t, settings.NotifierPaused) // still running
78101
}
79-
80-
func TestResumeNotifications(t *testing.T) {
81-
t.Parallel()
82-
83-
// given
84-
ownerClient, db := coderdtest.NewWithDatabase(t, nil)
85-
_ = coderdtest.CreateFirstUser(t, ownerClient)
86-
87-
// when
88-
inv, root := clitest.New(t, "notifications", "resume")
89-
clitest.SetupConfig(t, ownerClient, root)
90-
91-
var buf bytes.Buffer
92-
inv.Stdout = &buf
93-
err := inv.Run()
94-
require.NoError(t, err)
95-
96-
// then
97-
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitShort)
98-
t.Cleanup(cancel)
99-
settingsJSON, err := db.GetNotificationsSettings(ctx)
100-
require.NoError(t, err)
101-
102-
var settings codersdk.NotificationsSettings
103-
err = json.Unmarshal([]byte(settingsJSON), &settings)
104-
require.NoError(t, err)
105-
require.False(t, settings.NotifierPaused)
106-
}

0 commit comments

Comments
 (0)