Files
SDI 12e4f17b62
CI / typecheck (push) Successful in 1m8s
CI / format (push) Failing after 1m6s
CI / lint (push) Failing after 49s
CI / test (push) Failing after 1m8s
first commit
2026-07-15 18:05:12 +09:00

85 lines
2.8 KiB
TypeScript

import { expect, test as setup } from '@playwright/test';
import { initializeDatabaseForTest } from './utils/database-utils';
import { initializeOpenSearchForTest } from './utils/opensearch-utils';
const authFile = 'playwright/.auth/user.json';
setup('tenant create and authenticate', async ({ page }) => {
try {
await initializeDatabaseForTest();
console.log('Database initialized for test');
} catch (error) {
console.warn(
'Database initialization failed, continuing without database cleanup:',
error,
);
}
try {
await initializeOpenSearchForTest();
console.log('OpenSearch initialized for test');
} catch (error) {
console.warn(
'OpenSearch initialization failed, continuing without OpenSearch:',
error,
);
}
await page.goto('http://localhost:3000/tenant/create', {
waitUntil: 'domcontentloaded',
});
await page.waitForTimeout(1000);
await page.locator("input[name='siteName']").click();
await page.locator("input[name='siteName']").fill('TestTenant');
await page.getByRole('button', { name: 'Next', exact: true }).click();
await page.waitForTimeout(1000);
await page.locator("input[name='email']").click();
await page.locator("input[name='email']").fill('sdi9429@naver.com');
await page.getByRole('button', { name: 'Request Code', exact: true }).click();
await page.waitForSelector('input[name="code"]', {
state: 'visible',
timeout: 60000,
});
await page.locator("input[name='code']").click();
await page.locator("input[name='code']").fill('000000');
await page.getByRole('button', { name: 'Verify Code', exact: true }).click();
await page.locator("input[name='password']").click();
await page.locator("input[name='password']").fill('Abcd1234!');
await page.locator("input[name='confirmPassword']").click();
await page.locator("input[name='confirmPassword']").fill('Abcd1234!');
await page.getByRole('button', { name: 'Next', exact: true }).click();
await page.waitForTimeout(1000);
await page.getByRole('button', { name: 'Confirm', exact: true }).click();
await page.waitForTimeout(1000);
await page.goto('http://localhost:3000/auth/sign-in', {
waitUntil: 'domcontentloaded',
});
await page.waitForTimeout(1000);
await expect(page.locator('body', { hasText: 'TestTenant' })).toContainText(
'TestTenant',
);
await page.locator("input[name='email']").click();
await page.locator("input[name='email']").fill('sdi9429@naver.com');
await page.locator("input[name='password']").click();
await page.locator("input[name='password']").fill('Abcd1234!');
await page.getByRole('button', { name: 'Sign In', exact: true }).click();
await page.waitForTimeout(1000);
await page.waitForURL('http://localhost:3000/main/project/create');
await page.context().storageState({ path: authFile });
});