attempt to fix test

This commit is contained in:
kakkokari-gtyih 2024-02-26 19:12:18 +09:00
parent 16526b0c07
commit 0ed279ad2a
3 changed files with 34 additions and 27 deletions

View File

@ -122,7 +122,7 @@ describe('After user signup', () => {
cy.get('[data-cy-signin-password] input').type('alice1234{enter}'); cy.get('[data-cy-signin-password] input').type('alice1234{enter}');
cy.wait('@signin'); cy.wait('@signin');
}); });
it('suspend', function() { it('suspend', function() {
cy.request('POST', '/api/admin/suspend-user', { cy.request('POST', '/api/admin/suspend-user', {
@ -166,29 +166,38 @@ describe('After user signed in', () => {
}); });
it('account setup wizard', () => { it('account setup wizard', () => {
cy.visit('/onboarding');
// 表示に時間がかかるのでデフォルト秒数だとタイムアウトする // 表示に時間がかかるのでデフォルト秒数だとタイムアウトする
cy.get('[data-cy-user-setup-continue]', { timeout: 30000 }).click(); cy.get('[data-cy-user-setup-continue]', { timeout: 60000 }).click();
cy.get('[data-cy-user-setup-user-name] input').type('ありす');
cy.get('[data-cy-user-setup-user-description] textarea').type('ほげ');
// TODO: アイコン設定テスト
// 1 - ノートについて
cy.get('[data-cy-user-setup-continue]').click(); cy.get('[data-cy-user-setup-continue]').click();
// プライバシー設定 // 2 - リアクションのやりかた(インタラクティブ要素はテストしない)
cy.get('[data-cy-user-setup-continue]').click(); cy.get('[data-cy-user-setup-continue]').click();
// フォローはスキップ // 3 - タイムラインの仕組み
cy.get('[data-cy-user-setup-continue]').click(); cy.get('[data-cy-user-setup-continue]').click();
// プッシュ通知設定はスキップ // 4 - オススメユーザーのフォロー
cy.get('[data-cy-user-setup-continue]').click(); cy.get('[data-cy-user-setup-continue]').click();
// 5 - 投稿画面
cy.get('[data-cy-user-setup-continue]').click(); cy.get('[data-cy-user-setup-continue]').click();
});
// 6 - センシティブの設定方法(インタラクティブ要素はテストしない)
cy.get('[data-cy-user-setup-continue]').click();
// 7 - プッシュ通知
cy.get('[data-cy-user-setup-continue]').click();
// 8 - プライバシー設定
cy.get('[data-cy-user-setup-continue]').click();
// 9 -完了画面(トップページに遷移する)
cy.get('[data-cy-user-setup-complete]').click();
});
}); });
describe('After user setup', () => { describe('After user setup', () => {
@ -202,11 +211,6 @@ describe('After user setup', () => {
cy.registerUser('alice', 'alice1234'); cy.registerUser('alice', 'alice1234');
cy.login('alice', 'alice1234'); cy.login('alice', 'alice1234');
// アカウント初期設定ウィザード
// 表示に時間がかかるのでデフォルト秒数だとタイムアウトする
cy.get('[data-cy-user-setup] [data-cy-modal-window-close]', { timeout: 30000 }).click();
cy.get('[data-cy-modal-dialog-ok]').click();
}); });
afterEach(() => { afterEach(() => {

View File

@ -25,8 +25,8 @@ SPDX-License-Identifier: AGPL-3.0-only
<i class="ti ti-confetti" style="display: block; margin: auto; font-size: 3em; color: var(--accent);"></i> <i class="ti ti-confetti" style="display: block; margin: auto; font-size: 3em; color: var(--accent);"></i>
<div style="font-size: 120%;">{{ i18n.ts._initialTutorial._landing.title }}</div> <div style="font-size: 120%;">{{ i18n.ts._initialTutorial._landing.title }}</div>
<div>{{ i18n.ts._initialTutorial._landing.description }}</div> <div>{{ i18n.ts._initialTutorial._landing.description }}</div>
<MkButton primary rounded gradate style="margin: 16px auto 0 auto;" @click="next">{{ i18n.ts._initialTutorial.launchTutorial }} <i class="ti ti-arrow-right"></i></MkButton> <MkButton primary rounded gradate style="margin: 16px auto 0 auto;" data-cy-user-setup-continue @click="next">{{ i18n.ts._initialTutorial.launchTutorial }} <i class="ti ti-arrow-right"></i></MkButton>
<MkButton v-if="skippable" style="margin: 0 auto;" transparent rounded @click="emit('close', true)">{{ i18n.ts.close }}</MkButton> <MkButton v-if="skippable" style="margin: 0 auto;" transparent rounded data-cy-user-setup-close @click="emit('close', true)">{{ i18n.ts.close }}</MkButton>
</div> </div>
</MkSpacer> </MkSpacer>
</div> </div>
@ -125,7 +125,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<div :class="[$style.pageFooter, { [$style.pageFooterShown]: (page > 0 && page < MAX_PAGE) }]"> <div :class="[$style.pageFooter, { [$style.pageFooterShown]: (page > 0 && page < MAX_PAGE) }]">
<div class="_buttonsCenter"> <div class="_buttonsCenter">
<MkButton v-if="initialPage !== page" rounded @click="prev"><i class="ti ti-arrow-left"></i> {{ i18n.ts.goBack }}</MkButton> <MkButton v-if="initialPage !== page" rounded @click="prev"><i class="ti ti-arrow-left"></i> {{ i18n.ts.goBack }}</MkButton>
<MkButton primary rounded gradate :disabled="!canContinue" @click="next">{{ i18n.ts.continue }} <i class="ti ti-arrow-right"></i></MkButton> <MkButton primary rounded gradate :disabled="!canContinue" data-cy-user-setup-continue @click="next">{{ i18n.ts.continue }} <i class="ti ti-arrow-right"></i></MkButton>
</div> </div>
</div> </div>
</div> </div>
@ -166,6 +166,9 @@ const emit = defineEmits<{
(ev: 'close', withConfirm?: boolean): void; (ev: 'close', withConfirm?: boolean): void;
}>(); }>();
//
const isTest = (import.meta.env.MODE === 'test');
// eslint-disable-next-line vue/no-setup-props-destructure // eslint-disable-next-line vue/no-setup-props-destructure
const page = ref(props.initialPage ?? 0); const page = ref(props.initialPage ?? 0);
@ -175,8 +178,8 @@ watch(page, (to) => {
} }
}); });
const isReactionTutorialPushed = ref<boolean>(false); const isReactionTutorialPushed = ref<boolean>(isTest);
const isSensitiveTutorialSucceeded = ref<boolean>(false); const isSensitiveTutorialSucceeded = ref<boolean>(isTest);
const canContinue = computed(() => { const canContinue = computed(() => {
if (page.value === 2) { if (page.value === 2) {

View File

@ -21,7 +21,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<span v-else>{{ i18n.ts._initialTutorial.title }}</span> <span v-else>{{ i18n.ts._initialTutorial.title }}</span>
</div> </div>
<div v-if="instance.canSkipInitialTutorial" :class="$style.closeButton"> <div v-if="instance.canSkipInitialTutorial" :class="$style.closeButton">
<button class="_button" @click="cancel"><i class="ti ti-x"></i></button> <button class="_button" data-cy-user-setup-close @click="cancel"><i class="ti ti-x"></i></button>
</div> </div>
</div> </div>
<MkTutorial <MkTutorial
@ -54,8 +54,8 @@ SPDX-License-Identifier: AGPL-3.0-only
<div>{{ i18n.tsx._initialTutorial._onboardingLanding.welcomeToX({ name: instance.name ?? host }) }}</div> <div>{{ i18n.tsx._initialTutorial._onboardingLanding.welcomeToX({ name: instance.name ?? host }) }}</div>
</div> </div>
<div>{{ i18n.tsx._initialTutorial._onboardingLanding.description({ name: instance.name ?? host }) }}</div> <div>{{ i18n.tsx._initialTutorial._onboardingLanding.description({ name: instance.name ?? host }) }}</div>
<MkButton large primary rounded gradate style="margin: 16px auto 0;" @click="next">{{ i18n.ts.start }} <i class="ti ti-arrow-right"></i></MkButton> <MkButton large primary rounded gradate style="margin: 16px auto 0;" data-cy-user-setup-continue @click="next">{{ i18n.ts.start }} <i class="ti ti-arrow-right"></i></MkButton>
<MkButton v-if="instance.canSkipInitialTutorial" transparent rounded style="margin: 0 auto;" @click="cancel">{{ i18n.ts.later }}</MkButton> <MkButton v-if="instance.canSkipInitialTutorial" transparent rounded style="margin: 0 auto;" data-cy-user-setup-close @click="cancel">{{ i18n.ts.later }}</MkButton>
<MkInfo style="width: fit-content; margin: 0 auto; text-align: start; white-space: pre-wrap;">{{ i18n.tsx._initialTutorial._onboardingLanding.takesAbout({ min: 3 }) }}</MkInfo> <MkInfo style="width: fit-content; margin: 0 auto; text-align: start; white-space: pre-wrap;">{{ i18n.tsx._initialTutorial._onboardingLanding.takesAbout({ min: 3 }) }}</MkInfo>
</div> </div>
</MkSpacer> </MkSpacer>
@ -98,7 +98,7 @@ SPDX-License-Identifier: AGPL-3.0-only
{{ i18n.ts.explore }} {{ i18n.ts.explore }}
<template #caption>{{ i18n.ts._initialTutorial._onboardingDone.exploreDescription }}</template> <template #caption>{{ i18n.ts._initialTutorial._onboardingDone.exploreDescription }}</template>
</FormLink> </FormLink>
<FormLink to="/" large :behavior="'browser'"> <FormLink to="/" large :behavior="'browser'" data-cy-user-setup-complete>
<template #icon><i class="ti ti-home"></i></template> <template #icon><i class="ti ti-home"></i></template>
{{ i18n.ts._initialTutorial._onboardingDone.goToTimeline }} {{ i18n.ts._initialTutorial._onboardingDone.goToTimeline }}
<template #caption>{{ i18n.ts._initialTutorial._onboardingDone.goToTimelineDescription }}</template> <template #caption>{{ i18n.ts._initialTutorial._onboardingDone.goToTimelineDescription }}</template>