Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: チュートリアル・初期設定ウィザードの統合 #13462

Draft
wants to merge 69 commits into
base: develop
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
3604c47
feat: チュートリアルを独立ページにして初期設定ウィザードと統合
kakkokari-gtyih Feb 26, 2024
3dded16
enhance: スキップできるようにするかどうかを鯖管で決定できるように
kakkokari-gtyih Feb 26, 2024
e83d28f
キャンセルボタンを実装
kakkokari-gtyih Feb 26, 2024
103a44b
モデレーターは除外
kakkokari-gtyih Feb 26, 2024
f90b591
Merge branch 'develop' into feat-12997
kakkokari-gtyih Feb 26, 2024
0870dea
fox
kakkokari-gtyih Feb 26, 2024
16526b0
Merge branch 'feat-12997' of https://github.com/kakkokari-gtyih/missk…
kakkokari-gtyih Feb 26, 2024
0ed279a
attempt to fix test
kakkokari-gtyih Feb 26, 2024
37f3fb1
attempt
kakkokari-gtyih Feb 26, 2024
eb71b5c
一旦なしで
kakkokari-gtyih Feb 26, 2024
08d8d9c
Merge branch 'develop' into feat-12997
kakkokari-gtyih Feb 26, 2024
bfdb40b
Merge branch 'develop' into feat-12997
kakkokari-gtyih Mar 1, 2024
f03b126
remove pushnotification page
kakkokari-gtyih Mar 1, 2024
ddba066
Merge remote-tracking branch 'msky/develop' into feat-12997
kakkokari-gtyih Mar 1, 2024
e8f158f
Merge branch 'develop' into feat-12997
kakkokari-gtyih Mar 5, 2024
2955fb9
Merge branch 'develop' into feat-12997
kakkokari-gtyih Mar 6, 2024
155692b
Merge branch 'develop' into feat-12997
kakkokari-gtyih Mar 22, 2024
97a904c
Merge branch 'develop' into feat-12997
kakkokari-gtyih Mar 22, 2024
0dd0b08
tweak
kakkokari-gtyih Mar 22, 2024
04be736
Merge branch 'develop' into feat-12997
kakkokari-gtyih Apr 1, 2024
4b3e2b0
Merge branch 'develop' into feat-12997
kakkokari-gtyih Apr 21, 2024
92972ae
Merge branch 'develop' into feat-12997
kakkokari-gtyih May 15, 2024
e2c70bb
Merge branch 'develop' into feat-12997
kakkokari-gtyih May 20, 2024
1581c21
Merge branch 'develop' into feat-12997
kakkokari-gtyih Aug 3, 2024
fae4e6c
fix
kakkokari-gtyih Aug 3, 2024
04ac9f3
bring back profile settings
kakkokari-gtyih Aug 3, 2024
3d5955f
fix title
kakkokari-gtyih Aug 3, 2024
f84d9fd
Merge branch 'develop' into feat-12997
kakkokari-gtyih Aug 12, 2024
d5ea008
refactor: ページの追加を容易にするためにめっちゃ変えた
kakkokari-gtyih Aug 12, 2024
e311c38
refactor
kakkokari-gtyih Aug 12, 2024
828f52a
e2eを復活させてみる
kakkokari-gtyih Aug 12, 2024
0e4bb2e
lint
kakkokari-gtyih Aug 12, 2024
6562fc7
fix
kakkokari-gtyih Aug 12, 2024
0abd256
fix
kakkokari-gtyih Aug 12, 2024
dcfe873
fix test
kakkokari-gtyih Aug 12, 2024
1e1b420
attempt to fix test
kakkokari-gtyih Aug 12, 2024
8f36b52
fix
kakkokari-gtyih Aug 12, 2024
a3f8726
attempt to fix test
kakkokari-gtyih Aug 12, 2024
633dd82
[ci skip] :art:
kakkokari-gtyih Aug 12, 2024
c2ecfd8
fix
kakkokari-gtyih Aug 13, 2024
dc4e2ea
fix
kakkokari-gtyih Aug 13, 2024
bc5f610
fix
kakkokari-gtyih Aug 13, 2024
b17d613
fix
kakkokari-gtyih Aug 16, 2024
54a4870
fix
kakkokari-gtyih Aug 16, 2024
5dbeb71
Update basic.cy.ts
kakkokari-gtyih Aug 16, 2024
79812e4
Merge branch 'develop' into feat-12997
kakkokari-gtyih Aug 26, 2024
63b7795
チュートリアル完了後にアカウントのキャッシュが更新されない問題を修正
kakkokari-gtyih Aug 26, 2024
535b34e
refactor
kakkokari-gtyih Aug 26, 2024
1f67785
Merge branch 'develop' into feat-12997
kakkokari-gtyih Sep 6, 2024
7602ca1
Merge branch 'develop' into feat-12997
kakkokari-gtyih Sep 10, 2024
9758145
add docs
kakkokari-gtyih Sep 10, 2024
d706112
Merge branch 'develop' into feat-12997
kakkokari-gtyih Sep 13, 2024
57d2aa3
fix merge
kakkokari-gtyih Sep 13, 2024
e419de7
Merge branch 'develop' into feat-12997
kakkokari-gtyih Oct 1, 2024
ecbe20b
Merge branch 'develop' into feat-12997
kakkokari-gtyih Oct 1, 2024
db92cf3
Merge remote-tracking branch 'msky/develop' into feat-12997
kakkokari-gtyih Oct 10, 2024
34cc0fc
css variables
kakkokari-gtyih Oct 10, 2024
09bf9bb
fix
kakkokari-gtyih Oct 10, 2024
67fc9d7
Merge branch 'develop' into feat-12997
kakkokari-gtyih Oct 15, 2024
1c80f21
Merge branch 'develop' into feat-12997
kakkokari-gtyih Oct 17, 2024
58d6562
Update CHANGELOG.md
kakkokari-gtyih Oct 17, 2024
7657cec
Update link.vue
kakkokari-gtyih Oct 17, 2024
bd24b84
missing prefixes
kakkokari-gtyih Oct 19, 2024
6ea1cf4
Merge branch 'develop' into feat-12997
kakkokari-gtyih Oct 21, 2024
a42c5e4
Merge branch 'develop' into feat-12997
kakkokari-gtyih Nov 5, 2024
f8bc6ab
Merge remote-tracking branch 'msky/develop' into feat-12997
kakkokari-gtyih Dec 19, 2024
e286545
Merge branch 'feat-12997' of https://github.com/kakkokari-gtyih/missk…
kakkokari-gtyih Dec 19, 2024
2a8f6c9
fix
kakkokari-gtyih Dec 19, 2024
3c592d6
Merge branch 'develop' into feat-12997
kakkokari-gtyih Dec 19, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
-

### Client
- Feat: チュートリアルと初期設定ダイアログを統合
- 管理者は新規登録したユーザーにチュートリアルを強制することができるように
- Enhance: PC画面でチャンネルが複数列で表示されるように
(Cherry-picked from https://github.com/Otaku-Social/maniakey/pull/13)
- Fix: 画面サイズが変わった際にナビゲーションバーが自動で折りたたまれない問題を修正
Expand Down
115 changes: 57 additions & 58 deletions cypress/e2e/basic.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ describe('After setup instance', () => {
cy.visitHome();
});

it('signup', () => {
it('signup / onboarding', () => {
cy.visitHome();

cy.intercept('POST', '/api/signup').as('signup');
Expand All @@ -74,6 +74,60 @@ describe('After setup instance', () => {
cy.get('[data-cy-signup-submit]').click();

cy.wait('@signup');

// /onboarding にリダイレクトされる
cy.wait(5000);
cy.url().should('equal', Cypress.config().baseUrl + '/onboarding');

// 「始める」
// 最初にアニメーションがあるので待つ
cy.get('[data-cy-user-setup-start]', { timeout: 15000 }).click();

cy.wait(1000); // ← トランジション待ち(以下全てのページ遷移で待たせる)

// 【設定】プロフィール
cy.get('[data-cy-user-setup-user-name] input').type('ありす');
cy.get('[data-cy-user-setup-user-description] textarea').type('ほげ');

cy.get('[data-cy-user-setup-next]').click();
cy.wait(1000);

// 【チュートリアル】ノートって何?
cy.get('[data-cy-user-setup-next]').click();
cy.wait(1000);

// 【チュートリアル】リアクションって何?
// インタラクティブ要素があるが、テスト時は無視できるようになっている
cy.get('[data-cy-user-setup-next]').click();
cy.wait(1000);

// 【チュートリアル】タイムラインのしくみ
cy.get('[data-cy-user-setup-next]').click();
cy.wait(1000);

// 【設定】フォロー
cy.get('[data-cy-user-setup-next]').click();
cy.wait(1000);

// 【チュートリアル】ノートの投稿設定
cy.get('[data-cy-user-setup-next]').click();
cy.wait(1000);

// 【チュートリアル】添付ファイルをセンシティブにするには?
// インタラクティブ要素があるが、テスト時は無視できるようになっている
cy.get('[data-cy-user-setup-next]').click();
cy.wait(1000);

// 【設定】プライバシー設定
cy.get('[data-cy-user-setup-next]').click();
cy.wait(1000);

// 完了(「ホーム画面に進む」ボタン)
cy.get('[data-cy-user-setup-complete] a').click();

// ホームにリダイレクトされる
cy.wait(5000);
cy.url().should('equal', Cypress.config().baseUrl + '/');
});

it('signup with duplicated username', () => {
Expand Down Expand Up @@ -133,9 +187,9 @@ describe('After user signup', () => {
cy.get('[data-cy-signin-password] input').type('alice1234{enter}');

cy.wait('@signin');
});
});

it('suspend', function() {
it('suspend', function () {
cy.request('POST', '/api/admin/suspend-user', {
i: this.admin.token,
userId: this.alice.id,
Expand All @@ -153,56 +207,6 @@ describe('After user signup', () => {
});
});

describe('After user signed in', () => {
beforeEach(() => {
cy.resetState();

// インスタンス初期セットアップ
cy.registerUser('admin', 'pass', true);

// ユーザー作成
cy.registerUser('alice', 'alice1234');

cy.login('alice', 'alice1234');
});

afterEach(() => {
// テスト終了直前にページ遷移するようなテストケース(例えばアカウント作成)だと、たぶんCypressのバグでブラウザの内容が次のテストケースに引き継がれてしまう(例えばアカウントが作成し終わった段階からテストが始まる)。
// waitを入れることでそれを防止できる
cy.wait(1000);
});

it('successfully loads', () => {
// 表示に時間がかかるのでデフォルト秒数だとタイムアウトする
cy.get('[data-cy-user-setup-continue]', { timeout: 30000 }).should('be.visible');
});

it('account setup wizard', () => {
// 表示に時間がかかるのでデフォルト秒数だとタイムアウトする
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]').click();

// プライバシー設定

cy.get('[data-cy-user-setup-continue]').click();

// フォローはスキップ

cy.get('[data-cy-user-setup-continue]').click();

// プッシュ通知設定はスキップ

cy.get('[data-cy-user-setup-continue]').click();

cy.get('[data-cy-user-setup-continue]').click();
});
});

describe('After user setup', () => {
beforeEach(() => {
cy.resetState();
Expand All @@ -214,11 +218,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(() => {
Expand Down
6 changes: 0 additions & 6 deletions cypress/e2e/router.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,6 @@ describe('Router transition', () => {
cy.registerUser('alice', 'alice1234');

cy.login('alice', 'alice1234');

// アカウント初期設定ウィザード
// 表示に時間がかかるのでデフォルト秒数だとタイムアウトする
cy.get('[data-cy-user-setup] [data-cy-modal-window-close]', { timeout: 30000 }).click();
cy.wait(500);
cy.get('[data-cy-modal-dialog-ok]').click();
});

it('redirect to user profile', () => {
Expand Down
185 changes: 123 additions & 62 deletions locales/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5222,6 +5222,14 @@ export interface Locale extends ILocale {
* 注意事項を理解した上でオンにします。
*/
"acknowledgeNotesAndEnable": string;
/**
* チュートリアルをスキップできないようにする
*/
"prohibitSkippingInitialTutorial": string;
/**
* 新規登録したユーザーに表示されるチュートリアルをスキップできないようにします。チュートリアルを完了しなかったりチュートリアルページを回避したりした場合でも、強制的にリダイレクトされます。
*/
"prohibitSkippingInitialTutorialDescription": string;
"_accountSettings": {
/**
* コンテンツの表示にログインを必須にする
Expand Down Expand Up @@ -5431,68 +5439,6 @@ export interface Locale extends ILocale {
*/
"silenceDescription": string;
};
"_initialAccountSetting": {
/**
* アカウントの作成が完了しました!
*/
"accountCreated": string;
/**
* さっそくアカウントの初期設定を行いましょう。
*/
"letsStartAccountSetup": string;
/**
* まずはあなたのプロフィールを設定しましょう。
*/
"letsFillYourProfile": string;
/**
* プロフィール設定
*/
"profileSetting": string;
/**
* プライバシー設定
*/
"privacySetting": string;
/**
* これらの設定は後から変更できます。
*/
"theseSettingsCanEditLater": string;
/**
* この他にも様々な設定を「設定」ページから行えます。ぜひ後で確認してみてください。
*/
"youCanEditMoreSettingsInSettingsPageLater": string;
/**
* タイムラインを構築するため、気になるユーザーをフォローしてみましょう。
*/
"followUsers": string;
/**
* プッシュ通知を有効にすると{name}の通知をお使いのデバイスで受け取ることができます。
*/
"pushNotificationDescription": ParameterizedString<"name">;
/**
* 初期設定が完了しました!
*/
"initialAccountSettingCompleted": string;
/**
* {name}をお楽しみください!
*/
"haveFun": ParameterizedString<"name">;
/**
* このまま{name}(Misskey)の使い方についてのチュートリアルに進むこともできますが、ここで中断してすぐに使い始めることもできます。
*/
"youCanContinueTutorial": ParameterizedString<"name">;
/**
* チュートリアルを開始
*/
"startTutorial": string;
/**
* 初期設定をスキップしますか?
*/
"skipAreYouSure": string;
/**
* 初期設定をあとでやり直しますか?
*/
"laterAreYouSure": string;
};
"_initialTutorial": {
/**
* チュートリアルを見る
Expand Down Expand Up @@ -5520,6 +5466,21 @@ export interface Locale extends ILocale {
*/
"description": string;
};
"_profileSettings": {
/**
* プロフィール設定
*/
"title": string;
/**
* まずは基本的なプロフィールを設定して、ユーザーにあなたのことを知ってもらえるようにしましょう。
*/
"description": string;
/**
* ここで設定した項目は後でいつでも変更できます。
* チュートリアル終了後には、更に多彩なプロフィール設定をご利用いただけます!
*/
"youCanChangeThemLater": string;
};
"_note": {
/**
* ノートって何?
Expand Down Expand Up @@ -5606,6 +5567,16 @@ export interface Locale extends ILocale {
*/
"description3": ParameterizedString<"link">;
};
"_followUsers": {
/**
* 誰もフォローしていない状態だと、ホームタイムラインには何も表示されません。
*/
"description1": string;
/**
* タイムラインを構築するため、気になるユーザーをフォローしてみましょう。
*/
"description2": string;
};
"_postNote": {
/**
* ノートの投稿設定
Expand Down Expand Up @@ -5706,6 +5677,30 @@ export interface Locale extends ILocale {
*/
"doItToContinue": string;
};
"_pushNotification": {
/**
* プッシュ通知を有効にすると{name}の通知をお使いのデバイスで受け取ることができます。
*/
"description": ParameterizedString<"name">;
};
"_privacySettings": {
/**
* プライバシー設定
*/
"title": string;
/**
* 多くのユーザーが利用しているプライバシー関連の設定項目をリストアップしました。必要に応じて変更してください。
*/
"description1": string;
/**
* これらの設定は後から変更できます。
*/
"theseSettingsCanEditLater": string;
/**
* この他にも様々な設定を「設定」ページから行えます。ぜひ後で確認してみてください。
*/
"youCanEditMoreSettingsInSettingsPageLater": string;
};
"_done": {
/**
* チュートリアルは終了です🎉
Expand All @@ -5715,6 +5710,72 @@ export interface Locale extends ILocale {
* ここで紹介した機能はほんの一部にすぎません。Misskeyの使い方をより詳しく知るには、{link}をご覧ください。
*/
"description": ParameterizedString<"link">;
/**
* {name}をお楽しみください!
*/
"haveFun": ParameterizedString<"name">;
/**
* このチュートリアルは、「もっと!」→「情報」→「チュートリアルを見る」からいつでも見返すことができます。
*/
"youCanReferTutorialBy": string;
};
"_onboardingLanding": {
/**
* アカウントの作成が完了しました!
*/
"accountCreated": string;
/**
* ようこそ、{name}へ!
*/
"welcomeToX": ParameterizedString<"name">;
/**
* プロフィールを設定したり、{name}の基本的な使い方を学んだりして、すぐに使い始められるようにしましょう。
*/
"description": ParameterizedString<"name">;
/**
* このチュートリアルの所要時間は{min}分程度です。
* チュートリアルを完了すると実績が解除されます。
*/
"takesAbout": ParameterizedString<"min">;
/**
* このサーバーの管理者は新規ユーザーにチュートリアルを完了することを義務付けています。
* チュートリアルを完了するまでMisskeyを使い始めることはできません。
*/
"adminForcesToTakeTutorial": string;
};
"_onboardingDone": {
/**
* お疲れ様でした!次のステップに進んで、{name}をもっと楽しめるようにしましょう。
*/
"description": ParameterizedString<"name">;
/**
* 元のページに戻る
*/
"backToOriginalPath": string;
/**
* あなたがアクセスしようとしていたページに戻ります。
*/
"backToOriginalPathDescription": string;
/**
* プロフィール設定
*/
"profile": string;
/**
* プロフィールをかんぺきにして、自分をアピールしましょう。
*/
"profileDescription": string;
/**
* 人気のノートやユーザーを見つけて交流をはじめましょう。
*/
"exploreDescription": string;
/**
* ホーム画面に進む
*/
"goToTimeline": string;
/**
* 設定等を行わず、通常のホーム画面(タイムライン)に進みます。
*/
"goToTimelineDescription": string;
};
};
"_timelineDescription": {
Expand Down
Loading
Loading