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テストの復活 #10163

Merged
merged 21 commits into from
Mar 3, 2023
Merged

Conversation

saschanaz
Copy link
Member

@saschanaz saschanaz commented Mar 1, 2023

Fixes #10136

  1. なぜか一部にモデュールがabsolute pathでimportされる場合があるので、サポートできるようにmoduleNameMapperを編集
  2. request()api()が混ざっていたのでapi()で統一
  3. 一部動作変更に対応
    • reactions/createはもう修復を拒否しない
    • /notes/showはもうリアクションのユーザーIDをreturnしない
    • 名前を空白にできる(できていいのか)
    • api-docとapi.jsonは廃止された (openapi)
    • /notes/createはファイル関連エラーを無視しないようになった
    • ICOファイルのmedia typeがimage/x-iconからimage/vnd.microsoft.iconに変更された

@github-actions github-actions bot added packages/backend Server side specific issue/PR 🧪Test labels Mar 1, 2023
@saschanaz
Copy link
Member Author

Windows case insensitivity廃止を要求する

@codecov
Copy link

codecov bot commented Mar 1, 2023

Codecov Report

Merging #10163 (3cdf1c2) into develop (187a698) will increase coverage by 43.99%.
The diff coverage is 94.39%.

@@             Coverage Diff              @@
##           develop   #10163       +/-   ##
============================================
+ Coverage    25.17%   69.16%   +43.99%     
============================================
  Files          705      705               
  Lines        65273    65325       +52     
  Branches      2329     5184     +2855     
============================================
+ Hits         16431    45181    +28750     
+ Misses       48842    20144    -28698     
Impacted Files Coverage Δ
...s/backend/src/core/chart/ChartManagementService.ts 90.14% <20.00%> (+1.73%) ⬆️
packages/backend/src/core/NoteReadService.ts 83.40% <92.59%> (+58.87%) ⬆️
packages/backend/src/GlobalModule.ts 100.00% <100.00%> (ø)
packages/backend/src/boot/common.ts 78.37% <100.00%> (+78.37%) ⬆️
...ages/backend/src/core/CreateNotificationService.ts 92.00% <100.00%> (+54.71%) ⬆️
packages/backend/src/core/NoteCreateService.ts 85.69% <100.00%> (+37.07%) ⬆️
...es/backend/src/core/chart/charts/per-user-notes.ts 83.05% <100.00%> (ø)
packages/backend/src/server/ServerService.ts 45.11% <100.00%> (+45.11%) ⬆️
packages/backend/src/server/api/ApiCallService.ts 62.42% <100.00%> (+62.42%) ⬆️
...ackages/backend/src/server/api/ApiServerService.ts 80.00% <100.00%> (+80.00%) ⬆️
... and 475 more

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

@saschanaz
Copy link
Member Author

coverageが上がらない??

@saschanaz
Copy link
Member Author

saschanaz commented Mar 1, 2023

jestjs/jest#5274

Edit: jestjs/jest#3190 (comment) jestjs/jest#3190 (comment) nyc使うとなんとかできるといわれる

@syuilo
Copy link
Member

syuilo commented Mar 1, 2023

サーバー用に子プロセスを起動すると、カバレッジの問題もありますしなりより遅いので、テストと同じプロセス内でNestインスタンスを作成してテストするようにしたいですね(他のServiceのテストと同様の方法で出来るはず)

@saschanaz
Copy link
Member Author

saschanaz commented Mar 2, 2023

サーバー用に子プロセスを起動すると、カバレッジの問題もありますしなりより遅いので、テストと同じプロセス内でNestインスタンスを作成してテストするようにしたいですね(他のServiceのテストと同様の方法で出来るはず)

これやってみていますが、あちこちでpostgresやioredisにawaitなしにアクセスしているのでテスト終わったあとconnection destroyしたらまだアクセスしたいのになんてことするんだっておこられます😭

@saschanaz
Copy link
Member Author

とconnection destroyしたらまだアクセスしたいのになんてことするんだっておこられます

一旦destroyしないようにしました

絶対いいとは思いませんが他にいい方法がなかったので…

meta: ep.meta ?? {},
params: ep.paramDef,
get meta() { return ep.meta ?? {}; },
get params() { return ep.paramDef; },
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

インポートするだけで"Cannot access ep.meta before initialization"とかエラーが出るのでgetterにして回避しました

@saschanaz
Copy link
Member Author

destroyしないとout of memory...

@syuilo
Copy link
Member

syuilo commented Mar 2, 2023

あちこちでpostgresやioredisにawaitなしにアクセスしているのでテスト終わったあとconnection destroyしたらまだアクセスしたいのになんてことするんだっておこられます

テストが終わった後少し待ってからdestroyすれば回避できるかも?

@saschanaz
Copy link
Member Author

あれ、治らなかったです…

@saschanaz
Copy link
Member Author

ついに!!!(Jestやだ)

@saschanaz
Copy link
Member Author

saschanaz commented Mar 2, 2023

workerIdleMemoryLimitは発動しませんでしたね。偶然OOM出なかっただけ?

@saschanaz
Copy link
Member Author

#10163 (comment)

  • Coverage 25.17% 68.72% +43.54%

偉業(自画自賛)
レターパックで現金もらえますか?w

@syuilo syuilo merged commit 61215e5 into misskey-dev:develop Mar 3, 2023
@syuilo
Copy link
Member

syuilo commented Mar 3, 2023

🙏🙏🙏🙏

digitalsp pushed a commit to digitalsp/misskey-for-moge that referenced this pull request Apr 2, 2024
test(backend): APIテストの復活 (misskey-dev#10163)

* Revert 1c5291f

* APIテストの復活

* apiテストの移行

* moduleNameMapper修正

* simpleGetでthrowしないように

status確認しているので要らない

* longer timeout

* ローカルでは問題ないのになんで

* case sensitive

* Run Nest instance within the current process

* Skip some setIntervals

* wait for 5 seconds

* kill them all!!

* logHeapUsage: true

* detectOpenHandlesがじゃましているらしい

* maxWorkers=1?

* restore drive api tests

* workerIdleMemoryLimit: 500MB

* 1024MiB

* Wait what
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.

APIテストを復活させる
2 participants