-
Notifications
You must be signed in to change notification settings - Fork 10.9k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix: settings-disappear-on-ui-navigation
Signed-off-by: Abhinav Kumar <abhinav@avitechlab.com>
- Loading branch information
1 parent
7a57f34
commit 96bb00f
Showing
3 changed files
with
46 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
42 changes: 42 additions & 0 deletions
42
apps/meteor/tests/e2e/settings-persistence-on-ui-navigation.spec.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
import { Users } from './fixtures/userStates'; | ||
import { setSettingValueById } from './utils'; | ||
import { test, expect } from './utils/test'; | ||
|
||
test.use({ storageState: Users.admin.state }); | ||
|
||
test.describe.serial('settings-persistence-on-ui-navigation', () => { | ||
test.beforeAll(({ api }) => setSettingValueById(api, 'Hide_System_Messages', [])); | ||
|
||
test.beforeEach(async ({ page }) => { | ||
await page.goto('/admin/settings/Message'); | ||
|
||
// Intercept the API call and delay its response | ||
await page.route('/api/v1/method.call/saveSettings', async (route) => { | ||
const response = await route.fetch(); | ||
await new Promise((resolve) => setTimeout(resolve, 2000)); // Delay the response by 2 seconds | ||
return route.fulfill({ | ||
response, | ||
status: response.status(), | ||
headers: response.headers(), | ||
body: await response.body(), | ||
}); | ||
}); | ||
}); | ||
|
||
test.afterAll(({ api }) => setSettingValueById(api, 'Hide_System_Messages', [])); | ||
|
||
test('expect settings to persist in ui when navigating back and forth', async ({ page }) => { | ||
const settingInput = await page.locator('[data-qa-setting-id="Hide_System_Messages"] input'); | ||
await settingInput.pressSequentially('User joined'); | ||
await settingInput.press('Enter'); | ||
|
||
await page.locator('button:has-text("Save changes")').click(); | ||
await page.locator('button[title="Back"]').click(); | ||
|
||
await page.waitForResponse((response) => response.url().includes('/api/v1/method.call/saveSettings') && response.status() === 200); | ||
|
||
await page.locator('a[href="/admin/settings/Message"] >> text=Open').click(); | ||
|
||
await expect(page.locator('label[for="Hide_System_Messages"][title="Hide_System_Messages"]')).toBeVisible(); | ||
}); | ||
}); |