1
0
mirror of https://github.com/misskey-dev/misskey.git synced 2026-07-25 12:05:19 +02:00
This commit is contained in:
kakkokari-gtyih
2026-07-08 16:36:55 +09:00
parent bfe617a1bf
commit b02c1baf8f
3 changed files with 31 additions and 34 deletions

View File

@@ -18,7 +18,7 @@ import type { RegisteredUser } from './utils.js';
test.describe('Before setup instance', () => {
test.beforeEach(async ({ request }) => {
await resetState(request.fetch);
await resetState();
});
test('successfully loads', async ({ page }) => {
@@ -45,9 +45,9 @@ test.describe('Before setup instance', () => {
});
test.describe('After setup instance', () => {
test.beforeEach(async ({ request }) => {
await resetState(request.fetch);
await registerUser(request.fetch, 'admin', 'pass', true);
test.beforeEach(async () => {
await resetState();
await registerUser('admin', 'pass', true);
});
test('successfully loads', async ({ page }) => {
@@ -80,8 +80,8 @@ test.describe('After setup instance', () => {
await signupResponse;
});
test('signup with duplicated username', async ({ page, request }) => {
await registerUser(request.fetch, 'alice', 'alice1234');
test('signup with duplicated username', async ({ page }) => {
await registerUser('alice', 'alice1234');
await visitHome(page);
await page.getByTestId('signup').click();
@@ -101,10 +101,10 @@ test.describe('After user signup', () => {
let admin: RegisteredUser;
let alice: RegisteredUser;
test.beforeEach(async ({ request }) => {
await resetState(request.fetch);
admin = await registerUser(request.fetch, 'admin', 'pass', true);
alice = await registerUser(request.fetch, 'alice', 'alice1234');
test.beforeEach(async () => {
await resetState();
admin = await registerUser('admin', 'pass', true);
alice = await registerUser('alice', 'alice1234');
});
test('successfully loads', async ({ page }) => {
@@ -151,10 +151,10 @@ test.describe('After user signup', () => {
});
test.describe('After user signed in', () => {
test.beforeEach(async ({ request, page }) => {
await resetState(request.fetch);
await registerUser(request.fetch, 'admin', 'pass', true);
await registerUser(request.fetch, 'alice', 'alice1234');
test.beforeEach(async ({ page }) => {
await resetState();
await registerUser('admin', 'pass', true);
await registerUser('alice', 'alice1234');
await signIn(page, 'alice', 'alice1234');
});
@@ -187,10 +187,10 @@ test.describe('After user signed in', () => {
});
test.describe('After user setup', () => {
test.beforeEach(async ({ request, page }) => {
await resetState(request.fetch);
await registerUser(request.fetch, 'admin', 'pass', true);
await registerUser(request.fetch, 'alice', 'alice1234');
test.beforeEach(async ({ page }) => {
await resetState();
await registerUser('admin', 'pass', true);
await registerUser('alice', 'alice1234');
await signIn(page, 'alice', 'alice1234');
// 表示に時間がかかるのでデフォルト秒数だとタイムアウトする

View File

@@ -15,10 +15,9 @@ import {
test.describe('Router transition', () => {
test.beforeAll(async () => {
// beforeAllではブラウザのコンテキストがないので、素のfetchでリクエストを送る
await resetState(fetch);
await registerUser(fetch, 'admin', 'pass', true);
await registerUser(fetch, 'alice', 'alice1234');
await resetState();
await registerUser('admin', 'pass', true);
await registerUser('alice', 'alice1234');
});
test.beforeEach(async ({ page }) => {

View File

@@ -20,37 +20,35 @@ export function assertOk(status: number, body: string, route: string): void {
}
}
type FetchFunction = typeof fetch | APIRequestContext['fetch'];
export async function resetState(fetchFn: FetchFunction): Promise<void> {
const response = await fetchFn(`${BASE_URL}/api/reset-db`, {
export async function resetState(): Promise<void> {
const response = await fetch(`${BASE_URL}/api/reset-db`, {
method: 'POST',
data: '{}',
body: '{}',
headers: {
'Content-Type': 'application/json',
},
});
const status = typeof response.status === 'function' ? response.status() : response.status;
assertOk(status, await response.text(), '/api/reset-db');
assertOk(response.status, await response.text(), '/api/reset-db');
}
export async function registerUser(
fetchFn: FetchFunction,
username: string,
password: string,
isAdmin = false,
): Promise<RegisteredUser> {
const route = isAdmin ? '/api/admin/accounts/create' : '/api/signup';
const response = await fetchFn(`${BASE_URL}${route}`, {
const response = await fetch(`${BASE_URL}${route}`, {
method: 'POST',
data: {
body: JSON.stringify({
username,
password,
...(isAdmin ? { setupPassword: ADMIN_SETUP_PASSWORD } : {}),
}),
headers: {
'Content-Type': 'application/json',
},
});
const status = typeof response.status === 'function' ? response.status() : response.status;
assertOk(status, await response.text(), route);
assertOk(response.status, await response.text(), route);
return await response.json() as RegisteredUser;
}
//#endregion