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

@ -166,28 +166,37 @@ describe('After user signed in', () => {
});
it('account setup wizard', () => {
cy.visit('/onboarding');
// 表示に時間がかかるのでデフォルト秒数だとタイムアウトする
cy.get('[data-cy-user-setup-continue]', { timeout: 30000 }).click();
cy.get('[data-cy-user-setup-user-name] input').type('ありす');
cy.get('[data-cy-user-setup-user-description] textarea').type('ほげ');
// TODO: アイコン設定テスト
cy.get('[data-cy-user-setup-continue]', { timeout: 60000 }).click();
// 1 - ノートについて
cy.get('[data-cy-user-setup-continue]').click();
// プライバシー設定
// 2 - リアクションのやりかた(インタラクティブ要素はテストしない)
cy.get('[data-cy-user-setup-continue]').click();
// フォローはスキップ
// 3 - タイムラインの仕組み
cy.get('[data-cy-user-setup-continue]').click();
// プッシュ通知設定はスキップ
// 4 - オススメユーザーのフォロー
cy.get('[data-cy-user-setup-continue]').click();
// 5 - 投稿画面
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();
});
});
@ -202,11 +211,6 @@ describe('After user setup', () => {
cy.registerUser('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(() => {

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>
<div style="font-size: 120%;">{{ i18n.ts._initialTutorial._landing.title }}</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 v-if="skippable" style="margin: 0 auto;" transparent rounded @click="emit('close', true)">{{ i18n.ts.close }}</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 data-cy-user-setup-close @click="emit('close', true)">{{ i18n.ts.close }}</MkButton>
</div>
</MkSpacer>
</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="_buttonsCenter">
<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>
@ -166,6 +166,9 @@ const emit = defineEmits<{
(ev: 'close', withConfirm?: boolean): void;
}>();
//
const isTest = (import.meta.env.MODE === 'test');
// eslint-disable-next-line vue/no-setup-props-destructure
const page = ref(props.initialPage ?? 0);
@ -175,8 +178,8 @@ watch(page, (to) => {
}
});
const isReactionTutorialPushed = ref<boolean>(false);
const isSensitiveTutorialSucceeded = ref<boolean>(false);
const isReactionTutorialPushed = ref<boolean>(isTest);
const isSensitiveTutorialSucceeded = ref<boolean>(isTest);
const canContinue = computed(() => {
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>
</div>
<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>
<MkTutorial
@ -54,8 +54,8 @@ SPDX-License-Identifier: AGPL-3.0-only
<div>{{ i18n.tsx._initialTutorial._onboardingLanding.welcomeToX({ name: instance.name ?? host }) }}</div>
</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 v-if="instance.canSkipInitialTutorial" transparent rounded style="margin: 0 auto;" @click="cancel">{{ i18n.ts.later }}</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;" 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>
</div>
</MkSpacer>
@ -98,7 +98,7 @@ SPDX-License-Identifier: AGPL-3.0-only
{{ i18n.ts.explore }}
<template #caption>{{ i18n.ts._initialTutorial._onboardingDone.exploreDescription }}</template>
</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>
{{ i18n.ts._initialTutorial._onboardingDone.goToTimeline }}
<template #caption>{{ i18n.ts._initialTutorial._onboardingDone.goToTimelineDescription }}</template>