From dd755a0d85a4eb57eaa955ff0f60dc974c5bbd81 Mon Sep 17 00:00:00 2001 From: YuviPanda Date: Sat, 22 Mar 2025 12:36:31 -0700 Subject: [PATCH] Add end to end test for repo name autodetection --- tests/e2e/repo-migrate.test.e2e.ts | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/tests/e2e/repo-migrate.test.e2e.ts b/tests/e2e/repo-migrate.test.e2e.ts index 5e67f89ed1..582d6f71b7 100644 --- a/tests/e2e/repo-migrate.test.e2e.ts +++ b/tests/e2e/repo-migrate.test.e2e.ts @@ -7,6 +7,36 @@ import {test, save_visual, test_context} from './utils_e2e.ts'; test.use({user: 'user2'}); + +test('Migration Repo Name detection', async ({page, browser}, workerInfo) => { + test.skip(workerInfo.project.name === 'Mobile Safari', 'Flaky actionability checks on Mobile Safari'); + + await page.goto('/repo/migrate?service_type=2'); + + const form = page.locator('form'); + + // Test trailing slashes are stripped + await form.getByRole('textbox', {name: 'Migrate / Clone from URL'}).fill('https://github.com/example/test/'); + await form.getByRole('textbox', {name: 'Migrate / Clone from URL'}).blur(); + await expect(form.getByRole('textbox', {name: 'Repository Name'})).toHaveValue("test") + await save_visual(page); + + // Test trailing .git is stripped + await page.reload(); + await form.getByRole('textbox', {name: 'Migrate / Clone from URL'}).fill('https://github.com/example/test.git'); + await form.getByRole('textbox', {name: 'Migrate / Clone from URL'}).blur(); + await expect(form.getByRole('textbox', {name: 'Repository Name'})).toHaveValue("test") + await save_visual(page); + + // Test trailing .git and trailing / together is stripped + await page.reload(); + await form.getByRole('textbox', {name: 'Migrate / Clone from URL'}).fill('https://github.com/example/test.git/'); + await form.getByRole('textbox', {name: 'Migrate / Clone from URL'}).blur(); + await expect(form.getByRole('textbox', {name: 'Repository Name'})).toHaveValue("test") + await save_visual(page); +}); + + test('Migration Progress Page', async ({page, browser}, workerInfo) => { test.skip(workerInfo.project.name === 'Mobile Safari', 'Flaky actionability checks on Mobile Safari');