mirror of
https://github.com/gravitational/teleport.git
synced 2026-10-11 22:49:54 +00:00
* Auto detect fixture usage in tests * Changes to runner for enabling e e2e tests * Only detect fixtures in test/UI/debug modes * Make scanning more resilient - require test.use, allow for multiple lines * Fix e2e/runner CI generate check * Make scanning context aware to match with running individual tests * Log enabled fixtures on one line * Rename gen-fixtures, move go gen to main.go * Return an error if no tests are matched * gen-ts-fixtures: Use text/template instead of manually writing to buf * Ignore generated fixtures.ts instead of formatting it * Fix pnpm lockfile patching for when e/e2e is missing * Simplify test running mode detection for scanning fixtures * go generate * Remove codegen from test run logic * Handle run.sh receiving e/e2e directly * Allow for fixtures to be enabled manually through flags * Fix logging of enabled fixtures to include the ones set by flags * Handle inline comments * Update cmd in generated file * Only pnpm install if teleport/connect needs building * Error if UI mode is invoked with connect tests * Handle errors better when checking if a binary exists * Add info to the README about manually enabling fixtures * Debug -> Warn * Add test files to --ui * Handle comments in strings properly * Remove connect TSH from pnpm install logic * Ignore flags in run.sh * Handle double quotes just in case * Add line number back * Handle commented out imports * Always include host.docker.internal in the certs * Only scan fixtures in test mode/when test files are specified * Make e2e/run.sh work with absolute paths to e/ tests * Scan fixtures when running tests but not in UI mode --------- Co-authored-by: Maja Cieślak <[email protected]>
63 lines
2.0 KiB
TypeScript
63 lines
2.0 KiB
TypeScript
/*
|
|
* Teleport
|
|
* Copyright (C) 2026 Gravitational, Inc.
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU Affero General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU Affero General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Affero General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
import { type Page } from '@playwright/test';
|
|
|
|
import { password as e2ePassword } from './env';
|
|
import { expect } from './test';
|
|
import { mockWebAuthn } from './webauthn';
|
|
|
|
export async function login(
|
|
page: Page,
|
|
username = 'bob',
|
|
password = e2ePassword
|
|
) {
|
|
await page.addInitScript(() => {
|
|
localStorage.setItem('grv_teleport_license_acknowledged', 'true');
|
|
localStorage.setItem(
|
|
'grv_teleport_identity_security_recommendations_unified_resources_cta_seen',
|
|
'true'
|
|
);
|
|
});
|
|
|
|
await mockWebAuthn(page);
|
|
|
|
await page.goto('/');
|
|
|
|
await page.getByPlaceholder('Username').fill(username);
|
|
await page.getByPlaceholder('Password').fill(password);
|
|
|
|
await page
|
|
.getByTestId('userpassword')
|
|
.getByRole('button', { name: 'Sign In' })
|
|
.click();
|
|
|
|
await page.waitForLoadState('networkidle');
|
|
|
|
await expect(page.getByText(/^Resources$/).first()).toBeVisible();
|
|
}
|
|
|
|
export async function logout(page: Page) {
|
|
await page.getByRole('button', { name: 'User Menu' }).click();
|
|
await page.getByRole('menuitem', { name: 'Logout' }).click();
|
|
// This is important to make sure that the redirect and subsequent page.goto
|
|
// inside login() don't enter a race condition which results in a
|
|
// net::ERR_ABORTED.
|
|
await expect(page.getByText('Sign in to Teleport')).toBeVisible();
|
|
}
|