mirror of
https://github.com/zulip/zulip.git
synced 2025-11-01 20:44:04 +00:00
puppeteer_tests: Use more stable selectors.
This commit changes some fragile selectors (like `a[href=#link]`) to more stable selectors because they are more prone to break from doing something normal like adding another link in the app. It also solves an inconsistency in `07-navigation.ts`, where the subscription overlay was opened by clicking on the header stream instead of the menu list. It also fixes a rare flake (in `07-navigation.ts`), where the close button of subscription overlay was not clicked due to a delay in the opening. The delay was caused by clicking the header stream to open subscription overlay which caused unnecessary loading of the stream setting(Verona).
This commit is contained in:
@@ -252,7 +252,7 @@ class CommonUtils {
|
||||
async log_out(page: Page): Promise<void> {
|
||||
await page.goto(this.realm_url);
|
||||
const menu_selector = "#settings-dropdown";
|
||||
const logout_selector = 'a[href="#logout"]';
|
||||
const logout_selector = '.dropdown-menu a[href="#logout"]';
|
||||
console.log("Logging out");
|
||||
await page.waitForSelector(menu_selector, {visible: true});
|
||||
await page.click(menu_selector);
|
||||
@@ -468,7 +468,7 @@ class CommonUtils {
|
||||
await page.waitForSelector(menu_selector, {visible: true});
|
||||
await page.click(menu_selector);
|
||||
|
||||
const organization_settings = 'a[href="#organization"]';
|
||||
const organization_settings = '.dropdown-menu a[href="#organization"]';
|
||||
await page.click(organization_settings);
|
||||
await page.waitForSelector("#settings_overlay_container.show", {visible: true});
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ async function stream_name_error(page: Page): Promise<string> {
|
||||
}
|
||||
|
||||
async function open_streams_modal(page: Page): Promise<void> {
|
||||
const all_streams_selector = 'a[href="#streams/all"]';
|
||||
const all_streams_selector = "#add-stream-link";
|
||||
await page.waitForSelector(all_streams_selector, {visible: true});
|
||||
await page.click(all_streams_selector);
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ async function toggle_test_star_message(page: Page): Promise<void> {
|
||||
}
|
||||
|
||||
async function test_narrow_to_starred_messages(page: Page): Promise<void> {
|
||||
await page.click('a[href^="#narrow/is/starred"]');
|
||||
await page.click('#global_filters a[href^="#narrow/is/starred"]');
|
||||
await common.check_messages_sent(page, "zfilt", [["Verona > stars", [message]]]);
|
||||
|
||||
// Go back to all messages narrow.
|
||||
|
||||
@@ -31,7 +31,7 @@ async function navigate_to_settings(page: Page): Promise<void> {
|
||||
|
||||
await open_menu(page);
|
||||
|
||||
const settings_selector = "a[href^='#settings']";
|
||||
const settings_selector = ".dropdown-menu a[href^='#settings']";
|
||||
await page.waitForSelector(settings_selector, {visible: true});
|
||||
await page.click(settings_selector);
|
||||
|
||||
@@ -47,7 +47,7 @@ async function navigate_to_subscriptions(page: Page): Promise<void> {
|
||||
|
||||
await open_menu(page);
|
||||
|
||||
const manage_streams_selector = 'a[href^="#streams"]';
|
||||
const manage_streams_selector = '.dropdown-menu a[href^="#streams"]';
|
||||
await page.waitForSelector(manage_streams_selector, {visible: true});
|
||||
await page.click(manage_streams_selector);
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ async function navigate_to_user_list(page: Page): Promise<void> {
|
||||
const menu_selector = "#settings-dropdown";
|
||||
await page.waitForSelector(menu_selector, {visible: true});
|
||||
await page.click(menu_selector);
|
||||
await page.click('a[href="#organization"]');
|
||||
await page.click('.dropdown-menu a[href="#organization"]');
|
||||
await page.waitForSelector("#settings_overlay_container.show", {visible: true});
|
||||
await page.click("li[data-section='user-list-admin']");
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ async function open_settings(page: Page): Promise<void> {
|
||||
await page.waitForSelector(menu_selector, {visible: true});
|
||||
await page.click(menu_selector);
|
||||
|
||||
const settings_selector = 'a[href="#settings"]';
|
||||
const settings_selector = '.dropdown-menu a[href="#settings"]';
|
||||
await page.waitForSelector(settings_selector, {visible: true});
|
||||
await page.click(settings_selector);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user