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

test(backend): クリップのAPIテスト追加 #10358

Merged
merged 1 commit into from
Mar 19, 2023

Conversation

Nanashia
Copy link
Contributor

What

  • クリップに関するAPIテスト packages/backend/test/e2e/clips.ts を追加する。
  • このPRのフォーカス:
    • クリップ関連APIのAPI界面での検証。
    • ★エラー時のふるまい(status code, code, id)
  • このPRで見送った(含めなかった)修正:
    • リモートのノートがクリップできること←リモートのノート作るのが大変そうなので一旦pending
    • ブロック・ミュート関係のアカウントのノートの見え方←ノート自体のテストとアサーション共通化したほうがいいかも

Why

Additional info (optional)

  • ☑ pnpm test がall greenになること

Checklist

  • Read the contribution guide
  • Test working in a local environment
  • (If needed) Update CHANGELOG.md
  • (If possible) Add tests

@github-actions github-actions bot added packages/backend Server side specific issue/PR 🧪Test labels Mar 19, 2023
@Nanashia
Copy link
Contributor Author

Nanashia commented Mar 19, 2023

メモ: 足したテストのリスト

PASS  test/e2e/clips.ts (112.58 s, 772 MB heap size)
  クリップ
    ✓ の作成ができる (212 ms)
    ✓ の作成はポリシーで定められた数以上はできない。 (851 ms)
    ✓ の作成はnameが最大長でもできる (91 ms)
    ✓ の作成はprivateでもできる (95 ms)
    ✓ の作成はpublicでもできる (105 ms)
    ✓ の作成はdescriptionがnullでもできる (87 ms)
    ✓ の作成はdescriptionが最大長でもできる (93 ms)
    ✓ の作成はnameがnullならできない (14 ms)
    ✓ の作成はnameが最大長+1ならできない (13 ms)
    ✓ の作成はisPublicがboolじゃないならできない (15 ms)
    ✓ の作成はdescriptionがゼロ長ならできない (13 ms)
    ✓ の作成はdescriptionが最大長+1ならできない (13 ms)
    ✓ の更新ができる (140 ms)
    ✓ の更新はnameが最大長でもできる (178 ms)
    ✓ の更新はprivateでもできる (202 ms)
    ✓ の更新はpublicでもできる (187 ms)
    ✓ の更新はdescriptionがnullでもできる (147 ms)
    ✓ の更新はdescriptionが最大長でもできる (128 ms)
    ✓ の更新はclipIdがnullならできない (92 ms)
    ✓ の更新は存在しないクリップならできない (110 ms)
    ✓ の更新は他人のクリップならできない (129 ms)
    ✓ の更新はnameがnullならできない (91 ms)
    ✓ の更新はnameが最大長+1ならできない (94 ms)
    ✓ の更新はisPublicがboolじゃないならできない (91 ms)
    ✓ の更新はdescriptionがゼロ長ならできない (97 ms)
    ✓ の更新はdescriptionが最大長+1ならできない (106 ms)
    ✓ の削除ができる (65 ms)
    ✓ の削除はclipIdがnullならできない (89 ms)
    ✓ の削除は存在しないクリップならできない (91 ms)
    ✓ の削除は他人のクリップならできない (117 ms)
    ✓ のID指定取得ができる (142 ms)
    ✓ のID指定取得は他人のPrivateなクリップは取得できない (88 ms)
    ✓ のID指定取得はclipId未指定ならできない (13 ms)
    ✓ のID指定取得は存在しないクリップならできない (22 ms)
    ✓ の一覧(clips/list)が取得できる(空) (17 ms)
    ✓ の一覧(clips/list)が取得できる(上限いっぱい) (1117 ms)
    ✓ の一覧が取得できる(空) (24 ms)
    ✓ の一覧が取得できる (995 ms)
    ✓ の一覧が他人アカウントから取得できる (988 ms)
    ✓ の一覧は未認証でも取得できる (1020 ms)
    ✓ の一覧は存在しないユーザーのものでも取得できる (703 ms)
    ✓ の一覧はPrivateなクリップを含まない(自分のものであっても。) (209 ms)
    ✓ の一覧はID指定で範囲選択ができる (520 ms)
    ✓ の一覧はuserId未指定だと取得できない (13 ms)
    ✓ の一覧はlimitゼロだと取得できない (14 ms)
    ✓ の一覧はlimit最大+1だと取得できない (13 ms)
    ✓ の作成は未認証ではできない (15 ms)
    ✓ の更新は未認証ではできない (14 ms)
    ✓ の削除は未認証ではできない (15 ms)
    ✓ の取得は未認証ではできない (13 ms)
    ✓ のお気に入り設定は未認証ではできない (16 ms)
    ✓ のお気に入り解除は未認証ではできない (15 ms)
    ✓ のお気に入り取得は未認証ではできない (14 ms)
    ✓ のノート追加は未認証ではできない (18 ms)
    ✓ のノート削除は未認証ではできない (13 ms)
    のお気に入り
      ✓ を設定できる。 (155 ms)
      ✓ はPublicな他人のクリップに設定できる。 (350 ms)
      ✓ は1つのクリップに対して複数人が設定できる。 (262 ms)
      ✓ は11を超えて設定できる。 (2470 ms)
      ✓ は同じクリップに対して二回設定できない。 (127 ms)
      ✓ の設定はclipIdがnullならできない (160 ms)
      ✓ の設定は存在しないクリップならできない (170 ms)
      ✓ の設定は他人のクリップならできない (193 ms)
      ✓ を設定解除できる。 (150 ms)
      ✓ の設定解除はclipIdがnullならできない (170 ms)
      ✓ の設定解除は存在しないクリップならできない (270 ms)
      ✓ の設定解除は他人のクリップならできない (195 ms)
      ✓ の設定解除はお気に入りしていないクリップならできない (167 ms)
      ✓ を取得できる。 (172 ms)
      ✓ を取得したとき他人のお気に入りは含まない。 (145 ms)
    に紐づくノート
      ✓ を追加できる。 (355 ms)
      ✓ として同じノートを二回紐づけることはできない (171 ms)
      ✓ をポリシーで定められた上限いっぱい(200)を超えて追加はできない。 (18064 ms)
      ✓ は他人のクリップへ追加できない。 (86 ms)
      ✓ の追加はclipId未指定だとできない (96 ms)
      ✓ の追加はnoteId未指定だとできない (115 ms)
      ✓ の追加は存在しないクリップだとできない (124 ms)
      ✓ の追加は存在しないノートだとできない (98 ms)
      ✓ の追加は他人のクリップだとできない (94 ms)
      ✓ を削除できる。 (341 ms)
      ✓ の削除はclipId未指定だとできない (92 ms)
      ✓ の削除はnoteId未指定だとできない (84 ms)
      ✓ の削除は存在しないクリップだとできない (89 ms)
      ✓ の削除は存在しないノートだとできない (110 ms)
      ✓ の削除は他人のクリップだとできない (97 ms)
      ✓ を取得できる。 (458 ms)
      ✓ を始端IDとlimitで取得できる。 (451 ms)
      ✓ をID範囲指定で取得できる。 (586 ms)
      ✓ は他人のPublicなクリップからも取得できる。 (314 ms)
      ✓ はPublicなクリップなら認証なしでも取得できる。(非公開ノートはhideされて返ってくる) (434 ms)
      ✓ はclipId未指定だと取得できない (97 ms)
      ✓ はlimitゼロだと取得できない (148 ms)
      ✓ はlimit最大+1だと取得できない (95 ms)
      ✓ は存在しないクリップだと取得できない (95 ms)
      ✓ は他人のPrivateなクリップからだと取得できない (91 ms)
      ✓ は未認証でPrivateなクリップからだと取得できない (86 ms)
      ✎ todo Remoteのノートもクリップできる。どうテストしよう?
      ✎ todo ブロック、ミュートされたユーザーからの設定&取得etc.

@codecov
Copy link

codecov bot commented Mar 19, 2023

Codecov Report

Merging #10358 (d045129) into develop (7699b49) will increase coverage by 0.26%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##           develop   #10358      +/-   ##
===========================================
+ Coverage    74.92%   75.18%   +0.26%     
===========================================
  Files          876      876              
  Lines        85504    85504              
  Branches      5707     5764      +57     
===========================================
+ Hits         64062    64289     +227     
+ Misses       21442    21215     -227     

see 16 files with indirect coverage changes

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

@syuilo syuilo merged commit 2e051c5 into misskey-dev:develop Mar 19, 2023
@syuilo
Copy link
Member

syuilo commented Mar 19, 2023

🙏🏻🙏🏻🙏🏻🙏🏻

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
packages/backend Server side specific issue/PR
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants