Skip to content

Commit 0abf232

Browse files
committed
add tests
1 parent cb27e8c commit 0abf232

File tree

4 files changed

+83
-14
lines changed

4 files changed

+83
-14
lines changed

frontend/src/lib/components/custom-claims-input.svelte

+2-5
Original file line numberDiff line numberDiff line change
@@ -45,14 +45,11 @@
4545
suggestions={filteredSuggestions}
4646
bind:value={customClaims[i].key}
4747
/>
48-
<Input
49-
placeholder="Value"
50-
data-testid={`custom-claim-${i + 1}-value`}
51-
bind:value={customClaims[i].value}
52-
/>
48+
<Input placeholder="Value" bind:value={customClaims[i].value} />
5349
<Button
5450
variant="outline"
5551
size="sm"
52+
aria-label="Remove custom claim"
5653
on:click={() => (customClaims = customClaims.filter((_, index) => index !== i))}
5754
>
5855
<LucideMinus class="h-4 w-4" />

frontend/tests/account-settings.spec.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ test('Update account details fails with already taken email', async ({ page }) =
2424

2525
await page.getByRole('button', { name: 'Save' }).click();
2626

27-
await expect(page.getByRole('status')).toHaveText('Email is already taken');
27+
await expect(page.getByRole('status')).toHaveText('Email is already in use');
2828
});
2929

3030
test('Update account details fails with already taken username', async ({ page }) => {
@@ -34,7 +34,7 @@ test('Update account details fails with already taken username', async ({ page }
3434

3535
await page.getByRole('button', { name: 'Save' }).click();
3636

37-
await expect(page.getByRole('status')).toHaveText('Username is already taken');
37+
await expect(page.getByRole('status')).toHaveText('Username is already in use');
3838
});
3939

4040
test('Add passkey to an account', async ({ page }) => {

frontend/tests/user-group.spec.ts

+36
Original file line numberDiff line numberDiff line change
@@ -73,3 +73,39 @@ test('Delete user group', async ({ page }) => {
7373
await expect(page.getByRole('status')).toHaveText('User group deleted successfully');
7474
await expect(page.getByRole('row', { name: group.name })).not.toBeVisible();
7575
});
76+
77+
test('Update user group custom claims', async ({ page }) => {
78+
await page.goto(`/settings/admin/user-groups/${userGroups.designers.id}`);
79+
80+
// Add two custom claims
81+
await page.getByRole('button', { name: 'Add custom claim' }).click();
82+
83+
await page.getByPlaceholder('Key').fill('custom_claim_1');
84+
await page.getByPlaceholder('Value').fill('custom_claim_1_value');
85+
86+
await page.getByRole('button', { name: 'Add another' }).click();
87+
await page.getByPlaceholder('Key').nth(1).fill('custom_claim_2');
88+
await page.getByPlaceholder('Value').nth(1).fill('custom_claim_2_value');
89+
90+
await page.getByRole('button', { name: 'Save' }).nth(2).click();
91+
92+
await expect(page.getByRole('status')).toHaveText('Custom claims updated successfully');
93+
94+
await page.reload();
95+
96+
// Check if custom claims are saved
97+
await expect(page.getByPlaceholder('Key').first()).toHaveValue('custom_claim_1');
98+
await expect(page.getByPlaceholder('Value').first()).toHaveValue('custom_claim_1_value');
99+
await expect(page.getByPlaceholder('Key').nth(1)).toHaveValue('custom_claim_2');
100+
await expect(page.getByPlaceholder('Value').nth(1)).toHaveValue('custom_claim_2_value');
101+
102+
// Remove one custom claim
103+
await page.getByLabel('Remove custom claim').first().click();
104+
await page.getByRole('button', { name: 'Save' }).nth(2).click();
105+
106+
await page.reload();
107+
108+
// Check if custom claim is removed
109+
await expect(page.getByPlaceholder('Key').first()).toHaveValue('custom_claim_2');
110+
await expect(page.getByPlaceholder('Value').first()).toHaveValue('custom_claim_2_value');
111+
});

frontend/tests/user-settings.spec.ts

+43-7
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ test('Create user fails with already taken email', async ({ page }) => {
3232
await page.getByLabel('Username').fill(user.username);
3333
await page.getByRole('button', { name: 'Save' }).click();
3434

35-
await expect(page.getByRole('status')).toHaveText('Email is already taken');
35+
await expect(page.getByRole('status')).toHaveText('Email is already in use');
3636
});
3737

3838
test('Create user fails with already taken username', async ({ page }) => {
@@ -47,7 +47,7 @@ test('Create user fails with already taken username', async ({ page }) => {
4747
await page.getByLabel('Username').fill(users.tim.username);
4848
await page.getByRole('button', { name: 'Save' }).click();
4949

50-
await expect(page.getByRole('status')).toHaveText('Username is already taken');
50+
await expect(page.getByRole('status')).toHaveText('Username is already in use');
5151
});
5252

5353
test('Create one time access token', async ({ page }) => {
@@ -95,7 +95,7 @@ test('Update user', async ({ page }) => {
9595
await page.getByLabel('Last name').fill('Apple');
9696
await page.getByLabel('Email').fill('[email protected]');
9797
await page.getByLabel('Username').fill('crack');
98-
await page.getByRole('button', { name: 'Save' }).click();
98+
await page.getByRole('button', { name: 'Save' }).first().click();
9999

100100
await expect(page.getByRole('status')).toHaveText('User updated successfully');
101101
});
@@ -112,9 +112,9 @@ test('Update user fails with already taken email', async ({ page }) => {
112112
await page.getByRole('menuitem', { name: 'Edit' }).click();
113113

114114
await page.getByLabel('Email').fill(users.tim.email);
115-
await page.getByRole('button', { name: 'Save' }).click();
115+
await page.getByRole('button', { name: 'Save' }).first().click();
116116

117-
await expect(page.getByRole('status')).toHaveText('Email is already taken');
117+
await expect(page.getByRole('status')).toHaveText('Email is already in use');
118118
});
119119

120120
test('Update user fails with already taken username', async ({ page }) => {
@@ -129,7 +129,43 @@ test('Update user fails with already taken username', async ({ page }) => {
129129
await page.getByRole('menuitem', { name: 'Edit' }).click();
130130

131131
await page.getByLabel('Username').fill(users.tim.username);
132-
await page.getByRole('button', { name: 'Save' }).click();
132+
await page.getByRole('button', { name: 'Save' }).first().click();
133+
134+
await expect(page.getByRole('status')).toHaveText('Username is already in use');
135+
});
136+
137+
test('Update user custom claims', async ({ page }) => {
138+
await page.goto(`/settings/admin/users/${users.craig.id}`);
139+
140+
// Add two custom claims
141+
await page.getByRole('button', { name: 'Add custom claim' }).click();
142+
143+
await page.getByPlaceholder('Key').fill('custom_claim_1');
144+
await page.getByPlaceholder('Value').fill('custom_claim_1_value');
145+
146+
await page.getByRole('button', { name: 'Add another' }).click();
147+
await page.getByPlaceholder('Key').nth(1).fill('custom_claim_2');
148+
await page.getByPlaceholder('Value').nth(1).fill('custom_claim_2_value');
149+
150+
await page.getByRole('button', { name: 'Save' }).nth(1).click();
151+
152+
await expect(page.getByRole('status')).toHaveText('Custom claims updated successfully');
153+
154+
await page.reload();
155+
156+
// Check if custom claims are saved
157+
await expect(page.getByPlaceholder('Key').first()).toHaveValue('custom_claim_1');
158+
await expect(page.getByPlaceholder('Value').first()).toHaveValue('custom_claim_1_value');
159+
await expect(page.getByPlaceholder('Key').nth(1)).toHaveValue('custom_claim_2');
160+
await expect(page.getByPlaceholder('Value').nth(1)).toHaveValue('custom_claim_2_value');
161+
162+
// Remove one custom claim
163+
await page.getByLabel('Remove custom claim').first().click();
164+
await page.getByRole('button', { name: 'Save' }).nth(1).click();
165+
166+
await page.reload();
133167

134-
await expect(page.getByRole('status')).toHaveText('Username is already taken');
168+
// Check if custom claim is removed
169+
await expect(page.getByPlaceholder('Key').first()).toHaveValue('custom_claim_2');
170+
await expect(page.getByPlaceholder('Value').first()).toHaveValue('custom_claim_2_value');
135171
});

0 commit comments

Comments
 (0)