From 530b86e244003d5ac4a0ea690dec2edb25ae3695 Mon Sep 17 00:00:00 2001 From: silverwind Date: Tue, 17 Feb 2026 20:32:40 +0100 Subject: [PATCH] Add ambient type declarations for e2e env variables Declare E2E_USER, E2E_PASSWORD and E2E_URL as string in ProcessEnv so non-null assertions are no longer needed throughout the e2e tests. Co-Authored-By: Claude Opus 4.6 --- tests/e2e/env.d.ts | 7 +++++++ tests/e2e/milestone.test.ts | 4 +--- tests/e2e/readme.test.ts | 4 +--- tests/e2e/repo.test.ts | 2 +- tests/e2e/utils.ts | 2 +- 5 files changed, 11 insertions(+), 8 deletions(-) create mode 100644 tests/e2e/env.d.ts diff --git a/tests/e2e/env.d.ts b/tests/e2e/env.d.ts new file mode 100644 index 0000000000..d2cbaf0f6d --- /dev/null +++ b/tests/e2e/env.d.ts @@ -0,0 +1,7 @@ +declare namespace NodeJS { + interface ProcessEnv { + E2E_USER: string; + E2E_PASSWORD: string; + E2E_URL: string; + } +} diff --git a/tests/e2e/milestone.test.ts b/tests/e2e/milestone.test.ts index 56baddc14f..3cd9acfc61 100644 --- a/tests/e2e/milestone.test.ts +++ b/tests/e2e/milestone.test.ts @@ -10,7 +10,5 @@ test('create a milestone', async ({page}) => { await page.getByPlaceholder('Title').fill('Test Milestone'); await page.getByRole('button', {name: 'Create Milestone'}).click(); await expect(page.locator('.milestone-list')).toContainText('Test Milestone'); - - // cleanup - await deleteRepo(page, env.E2E_USER!, repoName); + await deleteRepo(page, env.E2E_USER, repoName); }); diff --git a/tests/e2e/readme.test.ts b/tests/e2e/readme.test.ts index 80d60d6cc6..d5e010af58 100644 --- a/tests/e2e/readme.test.ts +++ b/tests/e2e/readme.test.ts @@ -8,7 +8,5 @@ test('README renders on repository page', async ({page}) => { await createRepo(page, repoName); await page.goto(`/${env.E2E_USER}/${repoName}`); await expect(page.locator('#readme')).toContainText(repoName); - - // cleanup - await deleteRepo(page, env.E2E_USER!, repoName); + await deleteRepo(page, env.E2E_USER, repoName); }); diff --git a/tests/e2e/repo.test.ts b/tests/e2e/repo.test.ts index dcf9a6e4f1..db800da88e 100644 --- a/tests/e2e/repo.test.ts +++ b/tests/e2e/repo.test.ts @@ -9,5 +9,5 @@ test('create a repository', async ({page}) => { await page.locator('input[name="repo_name"]').fill(repoName); await page.getByRole('button', {name: 'Create Repository'}).click(); await expect(page).toHaveURL(new RegExp(`/${env.E2E_USER}/${repoName}$`)); - await deleteRepo(page, env.E2E_USER!, repoName); + await deleteRepo(page, env.E2E_USER, repoName); }); diff --git a/tests/e2e/utils.ts b/tests/e2e/utils.ts index c548a6b663..fc5b4b7344 100644 --- a/tests/e2e/utils.ts +++ b/tests/e2e/utils.ts @@ -43,7 +43,7 @@ export async function clickDropdownItem(page: Page, trigger: Locator, itemText: await page.getByText(itemText).click(); } -export async function login(page: Page, username = env.E2E_USER!, password = env.E2E_PASSWORD!) { +export async function login(page: Page, username = env.E2E_USER, password = env.E2E_PASSWORD) { await page.goto('/user/login'); await page.getByLabel('Username or Email Address').fill(username); await page.getByLabel('Password').fill(password);