diff --git a/cypress/e2e/basic.cy.js b/cypress/e2e/basic.cy.js index 604241d13c..1564b72cd9 100644 --- a/cypress/e2e/basic.cy.js +++ b/cypress/e2e/basic.cy.js @@ -122,7 +122,7 @@ describe('After user signup', () => { cy.get('[data-cy-signin-password] input').type('alice1234{enter}'); cy.wait('@signin'); - }); + }); it('suspend', function() { cy.request('POST', '/api/admin/suspend-user', { @@ -166,29 +166,38 @@ 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(); + }); }); describe('After user setup', () => { @@ -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(() => { diff --git a/packages/frontend/src/components/MkTutorial.vue b/packages/frontend/src/components/MkTutorial.vue index c429f5fe5d..634a1b7531 100644 --- a/packages/frontend/src/components/MkTutorial.vue +++ b/packages/frontend/src/components/MkTutorial.vue @@ -25,8 +25,8 @@ SPDX-License-Identifier: AGPL-3.0-only
{{ i18n.ts._initialTutorial._landing.title }}
{{ i18n.ts._initialTutorial._landing.description }}
- {{ i18n.ts._initialTutorial.launchTutorial }} - {{ i18n.ts.close }} + {{ i18n.ts._initialTutorial.launchTutorial }} + {{ i18n.ts.close }} @@ -125,7 +125,7 @@ SPDX-License-Identifier: AGPL-3.0-only
{{ i18n.ts.goBack }} - {{ i18n.ts.continue }} + {{ i18n.ts.continue }}
@@ -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(false); -const isSensitiveTutorialSucceeded = ref(false); +const isReactionTutorialPushed = ref(isTest); +const isSensitiveTutorialSucceeded = ref(isTest); const canContinue = computed(() => { if (page.value === 2) { diff --git a/packages/frontend/src/pages/onboarding.vue b/packages/frontend/src/pages/onboarding.vue index 6b3e0f1503..da426d8288 100644 --- a/packages/frontend/src/pages/onboarding.vue +++ b/packages/frontend/src/pages/onboarding.vue @@ -21,7 +21,7 @@ SPDX-License-Identifier: AGPL-3.0-only {{ i18n.ts._initialTutorial.title }}
- +
{{ i18n.tsx._initialTutorial._onboardingLanding.welcomeToX({ name: instance.name ?? host }) }}
{{ i18n.tsx._initialTutorial._onboardingLanding.description({ name: instance.name ?? host }) }}
- {{ i18n.ts.start }} - {{ i18n.ts.later }} + {{ i18n.ts.start }} + {{ i18n.ts.later }} {{ i18n.tsx._initialTutorial._onboardingLanding.takesAbout({ min: 3 }) }} @@ -98,7 +98,7 @@ SPDX-License-Identifier: AGPL-3.0-only {{ i18n.ts.explore }} - + {{ i18n.ts._initialTutorial._onboardingDone.goToTimeline }}