forgejo/tests/e2e/repo-home.test.e2e.ts
0ko abd69183ea feat(ui): responsive, JS-free repo language stats panel (#9532)
Followup to https://codeberg.org/forgejo/forgejo/pulls/6700 & https://codeberg.org/forgejo/forgejo/pulls/9429

## Testing

Test coverage is already present in `tests/e2e/repo-home.test.e2e.ts` - there are no changes in behavior, so just selectors were updated.

## Changes

* Re-make stats using details+summary: it now works without JS, works immediately after page is displayed, responds to clicking more quickly
* Make the clickable bar taller on coarse screens
* Fix broken overflowing on narrow screens

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9532
Reviewed-by: Otto <otto@codeberg.org>
Co-authored-by: 0ko <0ko@noreply.codeberg.org>
Co-committed-by: 0ko <0ko@noreply.codeberg.org>
2025-10-05 20:36:35 +02:00

44 lines
1.7 KiB
TypeScript

// Copyright 2025 The Forgejo Authors. All rights reserved.
// SPDX-License-Identifier: GPL-3.0-or-later
// @watch start
// web_src/js/components/RepoBranchTagSelector.vue
// web_src/js/features/common-global.js
// web_src/css/repo.css
// web_src/css/modules/stats-bar.css
// @watch end
import {expect} from '@playwright/test';
import {test} from './utils_e2e.ts';
import {screenshot} from './shared/screenshots.ts';
test('Language stats bar', async ({browser}) => {
// This test doesn't need JS and runs a little faster without it
const context = await browser.newContext({javaScriptEnabled: false});
const page = await context.newPage();
const response = await page.goto('/user2/language-stats-test');
expect(response?.status()).toBe(200);
await expect(page.locator('#language-stats ul')).toBeHidden();
await page.click('#language-stats summary');
await expect(page.locator('#language-stats ul')).toBeVisible();
await screenshot(page);
await page.click('#language-stats summary');
await expect(page.locator('#language-stats ul')).toBeHidden();
await screenshot(page);
});
test('Branch selector commit icon', async ({page}) => {
const response = await page.goto('/user2/repo1');
expect(response?.status()).toBe(200);
await expect(page.locator('.branch-dropdown-button svg.octicon-git-branch')).toBeVisible();
await expect(page.locator('.branch-dropdown-button')).toHaveText('master');
await page.goto('/user2/repo1/src/commit/65f1bf27bc3bf70f64657658635e66094edbcb4d');
await expect(page.locator('.branch-dropdown-button svg.octicon-git-commit')).toBeVisible();
await expect(page.locator('.branch-dropdown-button')).toHaveText('65f1bf27bc');
});