Move settings button back to the right in repo and org header
This will move the settings button back to the right, like known from older versions. For this, the overflow-menu was changed when a setting button is available. If no settings button is available, the behavior will not change. Fixes #3301
This commit is contained in:
parent
d6c36ec406
commit
f9628f883d
4 changed files with 141 additions and 5 deletions
114
tests/e2e/right-settings-button.test.e2e.js
Normal file
114
tests/e2e/right-settings-button.test.e2e.js
Normal file
|
@ -0,0 +1,114 @@
|
|||
// @ts-check
|
||||
import {test, expect} from '@playwright/test';
|
||||
import {login_user, load_logged_in_context} from './utils_e2e.js';
|
||||
|
||||
test.beforeAll(async ({browser}, workerInfo) => {
|
||||
await login_user(browser, workerInfo, 'user2');
|
||||
});
|
||||
|
||||
test.describe('desktop viewport', () => {
|
||||
test.use({viewport: {width: 1920, height: 300}});
|
||||
|
||||
test('Settings button on right of repo header', async ({browser}, workerInfo) => {
|
||||
const context = await load_logged_in_context(browser, workerInfo, 'user2');
|
||||
const page = await context.newPage();
|
||||
|
||||
await page.goto('/user2/repo1');
|
||||
|
||||
const settingsBtn = page.locator('.overflow-menu-items>#settings-btn');
|
||||
await expect(settingsBtn).toBeVisible();
|
||||
await expect(settingsBtn).toHaveClass(/right/);
|
||||
|
||||
await expect(page.locator('.overflow-menu-button')).toHaveCount(0);
|
||||
});
|
||||
|
||||
test('Settings button on right of org header', async ({browser}, workerInfo) => {
|
||||
const context = await load_logged_in_context(browser, workerInfo, 'user2');
|
||||
const page = await context.newPage();
|
||||
|
||||
await page.goto('/org3');
|
||||
|
||||
const settingsBtn = page.locator('.overflow-menu-items>#settings-btn');
|
||||
await expect(settingsBtn).toBeVisible();
|
||||
await expect(settingsBtn).toHaveClass(/right/);
|
||||
|
||||
await expect(page.locator('.overflow-menu-button')).toHaveCount(0);
|
||||
});
|
||||
|
||||
test('User overview overflow menu should not be influenced', async ({page}) => {
|
||||
await page.goto('/user2');
|
||||
|
||||
await expect(page.locator('.overflow-menu-items>#settings-btn')).toHaveCount(0);
|
||||
|
||||
await expect(page.locator('.overflow-menu-button')).toHaveCount(0);
|
||||
});
|
||||
});
|
||||
|
||||
test.describe('small viewport', () => {
|
||||
test.use({viewport: {width: 800, height: 300}});
|
||||
|
||||
test('Settings button in overflow menu of repo header', async ({browser}, workerInfo) => {
|
||||
const context = await load_logged_in_context(browser, workerInfo, 'user2');
|
||||
const page = await context.newPage();
|
||||
|
||||
await page.goto('/user2/repo1');
|
||||
|
||||
await expect(page.locator('.overflow-menu-items>#settings-btn')).toHaveCount(0);
|
||||
|
||||
await expect(page.locator('.overflow-menu-button')).toBeVisible();
|
||||
|
||||
await page.click('.overflow-menu-button');
|
||||
await expect(page.locator('.tippy-target>#settings-btn')).toBeVisible();
|
||||
|
||||
// Verify that we have no duplicated items
|
||||
const shownItems = await page.locator('.overflow-menu-items>a').all();
|
||||
expect(shownItems).not.toHaveLength(0);
|
||||
const overflowItems = await page.locator('.tippy-target>a').all();
|
||||
expect(overflowItems).not.toHaveLength(0);
|
||||
|
||||
const items = shownItems.concat(overflowItems);
|
||||
expect(Array.from(new Set(items))).toHaveLength(items.length);
|
||||
});
|
||||
|
||||
test('Settings button in overflow menu of org header', async ({browser}, workerInfo) => {
|
||||
const context = await load_logged_in_context(browser, workerInfo, 'user2');
|
||||
const page = await context.newPage();
|
||||
|
||||
await page.goto('/org3');
|
||||
|
||||
await expect(page.locator('.overflow-menu-items>#settings-btn')).toHaveCount(0);
|
||||
|
||||
await expect(page.locator('.overflow-menu-button')).toBeVisible();
|
||||
|
||||
await page.click('.overflow-menu-button');
|
||||
await expect(page.locator('.tippy-target>#settings-btn')).toBeVisible();
|
||||
|
||||
// Verify that we have no duplicated items
|
||||
const shownItems = await page.locator('.overflow-menu-items>a').all();
|
||||
expect(shownItems).not.toHaveLength(0);
|
||||
const overflowItems = await page.locator('.tippy-target>a').all();
|
||||
expect(overflowItems).not.toHaveLength(0);
|
||||
|
||||
const items = shownItems.concat(overflowItems);
|
||||
expect(Array.from(new Set(items))).toHaveLength(items.length);
|
||||
});
|
||||
|
||||
test('User overview overflow menu should not be influenced', async ({page}) => {
|
||||
await page.goto('/user2');
|
||||
|
||||
await expect(page.locator('.overflow-menu-items>#settings-btn')).toHaveCount(0);
|
||||
|
||||
await expect(page.locator('.overflow-menu-button')).toBeVisible();
|
||||
await page.click('.overflow-menu-button');
|
||||
await expect(page.locator('.tippy-target>#settings-btn')).toHaveCount(0);
|
||||
|
||||
// Verify that we have no duplicated items
|
||||
const shownItems = await page.locator('.overflow-menu-items>a').all();
|
||||
expect(shownItems).not.toHaveLength(0);
|
||||
const overflowItems = await page.locator('.tippy-target>a').all();
|
||||
expect(overflowItems).not.toHaveLength(0);
|
||||
|
||||
const items = shownItems.concat(overflowItems);
|
||||
expect(Array.from(new Set(items))).toHaveLength(items.length);
|
||||
});
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue