merge: 최신 main을 모바일 턴 입력 수정에 통합한다

This commit is contained in:
2026-08-21 22:50:54 +00:00
5 changed files with 36 additions and 5 deletions
+22
View File
@@ -1781,6 +1781,28 @@ test('내 정보에서 사람 장수의 등록 전콘을 골라 변경한다', a
);
});
test('내 정보 아이템 파기 확인은 이름의 받침에 맞는 조사를 쓴다', async ({ page }) => {
const state: FixtureState = {
permission: 'member',
myset: 1,
richMyInfo: true,
settingMutations: [],
accessPages: [],
};
const prompts: string[] = [];
page.on('dialog', async (dialog) => {
prompts.push(dialog.message());
await dialog.dismiss();
});
await install(page, state);
await page.goto('my-page');
await page.getByRole('button', { name: '명마', exact: true }).click();
await page.getByRole('button', { name: '효경전', exact: true }).click();
expect(prompts).toEqual(['명마를 버리시겠습니까?', '효경전을 버리시겠습니까?']);
});
test('장수 생성에서 등록 전콘을 골라 생성 요청에 전달한다', async ({ page }) => {
const firstIconId = '3f804277-584f-4f44-b39c-9ecf40d1ed31';
const secondIconId = 'f6af46a2-809a-481d-b66d-0f7bbb706780';
@@ -397,7 +397,7 @@ test('암행부 행을 도시별로 나누고 수뇌의 인사부 즉시 임명
return { borderTopWidth: style.borderTopWidth, backgroundColor: style.backgroundColor };
});
expect(disabledStyle).toEqual({ borderTopWidth: '0px', backgroundColor: 'rgba(0, 0, 0, 0)' });
const appointButton = page.getByRole('button', { name: '장료을(를) 허창 태수로 임명' });
const appointButton = page.getByRole('button', { name: '장료 허창 태수로 임명' });
await appointButton.hover();
expect(await appointButton.evaluate((button) => getComputedStyle(button).cursor)).toBe('pointer');
await appointButton.focus();
@@ -406,6 +406,7 @@ test('암행부 행을 도시별로 나누고 수뇌의 인사부 즉시 임명
await page.screenshot({ path: testInfo.outputPath('nation-city-integrated-desktop.png'), fullPage: true });
await appointButton.click();
await expect.poll(() => state.appointmentInputs).toEqual([{ destGeneralId: 21, destCityId: 1, officerLevel: 4 }]);
await expect(page.getByTestId('game-toast')).toContainText('장료를 허창 태수로 임명했습니다.');
await expect(page.locator('.city[data-city-id="1"] .officer-4-value')).toHaveText('장료');
await expect(page.locator('.city[data-city-id="1"] .officer-4-value')).toHaveClass(/effective-officer/u);
await expect(page.locator('.city[data-city-id="1"] tr[data-general-id="21"] .mode-4')).toBeDisabled();
@@ -425,7 +426,7 @@ test('수뇌 대상은 재확인하고 일반 장수에게는 임명 버튼을
await page.getByRole('button', { name: '암행부 연동' }).click();
await page.getByRole('button', { name: '인사부 연동' }).click();
const chiefButton = page.getByRole('button', { name: '순욱을(를) 허창 태수로 임명' });
const chiefButton = page.getByRole('button', { name: '순욱을 허창 태수로 임명' });
expect(await chiefButton.evaluate((button) => getComputedStyle(button).color)).toBe('rgb(255, 0, 0)');
page.once('dialog', async (dialog) => {
expect(dialog.message()).toBe('수뇌입니다. 임명할까요?');