13 Commits

Author SHA1 Message Date
saito.k
73ef74770e Merged PR 745: タスク取得処理のクエリ発行箇所の修正
## 概要
[Task3673: タスク取得処理のクエリ発行箇所の修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3673)

- タスク取得時にRelationでOptionItemも取得しているが、そのJoinカラムの指定方法に誤りがあったため正しいジョインカラムを指定するように修正した。
  - 本来はタスクレコードのaudio_file_idとOptionItemのaudio_file_idでjoinするはずだが、タスクレコードのidとOptionItemのaudio_file_idでjoinしていた
  - タスクと音声ファイルは同時にレコードが作られるため基本的にidが一致する傾向があり、テストで発見できていなかった模様
  - https://orkhan.gitbook.io/typeorm/docs/relations#joincolumn-options
- テスト修正

## レビューポイント
- 特になし

## UIの変更

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2024-02-13 02:36:01 +00:00
湯本 開
cf56239da2 Merged PR 669: Pipeline上でdocker-composeを用いてMySQLを起動する方法を調査する
## 概要
[Task3427: Pipeline上でdocker-composeを用いてMySQLを起動する方法を調査する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3427)

- MySQLでUnitTestを実施する仕組みを作成
  - DevContainerにUnitTestからのみアクセスされるMySQLが動くコンテナ( `test_mysql_db` )を追加
  - テストでMySQLを使用し、上記 `test_mysql_db` に対してアクセスするよう構成
  - テストの前処理で `test_mysql_db` の全てのテーブルをTRUNCATEする処理を実行し、データをクリアする
    - 常にテスト用MySQLは起動しているが、テスト実行前にクリアされるので空っぽ前提の状態でテストを実施できる
  - 実際にMySQLを使用して実行されるテストを1つ追加
    - `users.service.spec.ts | UsersService.createUser` が対象
- Pipeline上でDevContainerを起動し、DevContainer内で `npm ci` `(UnitTest用DBへの) migration` `npm run test` を行う仕組みを作成
  - Pipelineを追加
    - **StagingPipelineでテスト・ステップを切り出し**
  - Pipelineテスト用DevContainer(のdocker-compose.yml)を作成
    - 構成は通常の物と同一だが、ネットワーク設定だけ外部のMySQLやRedisと通信しない前提に変更している
  - テストの実行環境を自己ホストではなく、一般で提供されているマシンに変更
    - 自己ホストのマシンにdocker-composeが入ってない/ビルド後のクリア処理が大変等の理由
- テストで使用する環境変数を `.env.test` という別環境変数に切り出し
  - そうすることで、PipelineでKeyVaultへのアクセスをする必要がなくなる
- **migrationの漏れを修正**
  - テストが通らないことで発覚したmigration漏れを修正
- **テストコードを修正**
  - **Date型のミリ秒単位の誤差を setMillseconds(0) を用いることで0にセットするコードを追加(ライセンス付近)**

## レビューポイント
- **WIPレビュー以降の追加の修正で違和感のある箇所はないか**
  - コミット履歴等で追っていただいた方が楽かと思います
  - 直近の`Merge branch 'develop' into feature/3427/poc-mysql-test` 以降がWIP以降に変更されたコードです
- **レビュー通過後、developのPipelineについては手動で同等のコードに変更→PRをdevelopにマージ予定だが進め方として問題はないか**
- [※WIPでレビュー済み] テスト用DevContainerを別途作成したが、現行のDevContainerを使用するよう頑張った方がいいか?
  - [※WIPでレビュー済み] CI/CDの実行速度面を考慮し、使用されないMySQLとRedisのサービスとネットワーク作成が同居しているdocker-compose.ymlの実行を避けたが、管理対象は増えているので議論の余地はある
- [※WIPでレビュー済み] MySQLでUnitTestを実行する際に懸念事項はないか
- [※WIPでレビュー済み] Dockerを起動する関係でCI/CDのスピードが数分遅くなると思われるが、許容可能か
- [※WIPでレビュー済み] `.env.test` に置き換えて問題ないか

## 動作確認状況
- ローカル&Pipelineで実行して確認済
2024-01-23 07:58:42 +00:00
makabe.t
68aaa0e548 Merged PR 586: バックアップAPI実装
## 概要
[Task3121: バックアップAPI実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3121)

- タスクのバックアップAPIとテストを実装しました。
  - 実装に当たり、タスクエンティティ定義の型を修正しています。

## レビューポイント
- テストケースに過不足はないでしょうか?
- エンティティの値を取得した際に`is_job_number_enabled`が数値となってしまうのでtypeをBooleanに変更しましたが問題ないでしょうか?

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-11-20 08:57:56 +00:00
saito.k
ad49a19f04 Merged PR 484: NotificationHubsの通知フォーマット
## 概要
[Task2820: NotificationHubsの通知フォーマット](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2820)

- NotificationHubsで通知を行う処理を修正
  - 通知内容を変更
    - デスクトップ側でレンダリングを行うため、こちらからは必要なデータを送信する

- 通知処理を読んでいる箇所を修正
  - タスクキャンセル
  - チェックアウト候補変更
  - 音声ファイルアップロード完了(タスク作成)

## レビューポイント
- taskService内で通知をする箇所が複数あったのでプライベートメソッドとして切り出したが、fileServiceの通知処理もまとめたほうが良いか。
  - まとめる場合は、どこに切り出すか。
    - sendNotify(今回作成したプライベートメソッド)に、TasksRepositoryServiceやUserGroupsRepositoryServiceを引数に追加して共通関数としてCommonのどこかに配置する?
  - notificationhub.service.tsのnotifyメソッドの中で通知内容のための情報取得~通知内容作成まで全部行うようにする?

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2023-11-15 02:33:03 +00:00
makabe.t
b314fe4b46 Merged PR 513: 次タスク取得API実装
## 概要
[Task2874: 次タスク取得API実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2874)

- 次タスク取得APIとテストを実装しました。

## レビューポイント
- リポジトリからのタスク取得ロジックは適切か
- テストケースは適切か

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-10-26 10:46:15 +00:00
saito.k
d2c2223acf Merged PR 497: strictNullChecks修正③(task,users ,Repositoriesのusers)
## 概要
[Task2837: 修正③(task,users ,Repositoriesのusers)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2837)

- feature
  - tasks
  - users
- Repositories
  - users

## レビューポイント
- 該当箇所にコメントで記載

## 動作確認状況
- ローカルでテストが通ることを確認

## 補足
- 相談、参考資料などがあれば
2023-10-16 10:25:45 +00:00
湯本 開
89751396bf Merged PR 354: テスト用関数を作成する(Sprint16)
## 概要
[Task2383: テスト用関数を作成する(Sprint16)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2383)

- WIPレビューで指摘された関数名等を修正
- 汎用関数で問題があった部分を修正
  - データ構築ミスしていた箇所を修正
  - DB的にnullableな所をテスト用関数でも省略できるよう修正
- 各種Account、User作成関数を汎用関数に置き換え

## レビューポイント
- 情報共有

## 動作確認状況
- npm run test 成功
2023-08-28 10:40:55 +00:00
makabe.t
7ac578d4cc Merged PR 280: ユーザー一覧API修正
## 概要
[Task2231: ユーザー一覧API修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2231)

- ユーザー一覧取得APIを修正しまし、テスト実装を修正しました。
  - グループ情報、ライセンス情報を一緒に取得するよう修正
  - ADB2Cからのユーザー取得を一括取得に修正
※ユーザー以外のテスト変更はユーザーテーブルのスキーム変更に伴うものです。

## レビューポイント
- 取得内容に問題はないか
  - グループとライセンスはDBからリレーションで一緒に取得しているが処理的に問題はないか
  - ADB2Cからのメールアドレス取得のためにidentitiesパラメータを追加したが問題はないか
- テスト項目に問題はないか

## UIの変更
なし

## 動作確認状況
- ローカルで確認
2023-07-31 08:24:51 +00:00
makabe.t
c8ecc32b80 Merged PR 268: Typist割り当てAPIに通知処理を追加
## 概要
[Task2220: Typist割り当てAPIに通知処理を追加](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2220)

- タスクの割り当て候補変更APIに通知処理を追加しました。
  - 割り当てられたTypist全員を対象に通知を送るように実装しています。

## レビューポイント
- 対象となるユーザーは認識通りか
- 通知送信部分に問題はないか
  - tagは20個までのようなので分割して送信するようにしています。

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
  - テストが通ること
  - 割り当て変更が問題ないこと
2023-07-31 01:50:49 +00:00
saito.k
7be4da29bb Merged PR 219: タスクチェックインAPI実装
## 概要
[Task2118: タスクチェックインAPI実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2118)

- チェックインAPIの処理を実装
- テスト実装

## レビューポイント
- 文字起こし担当であるかどうかをチェックする方法についてどちらが良いか
  - チェックアウト権限テーブルで、タスクに紐づく割り当て候補を確認する(チェックアウトした時点で個人指定のみとなっているはず)
  - タスク情報にあるtypist_user_idで確認する
- テストケースは足りているか

## UIの変更

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2023-07-12 02:57:53 +00:00
saito.k
8c5f5b61c1 Merged PR 199: [12-1着手]タイピスト割り当て変更APIのテスト実装
## 概要
[Task2010: [12-1着手]タイピスト割り当て変更APIのテスト実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2010)

- タイピスト割り当て変更APIのテスト実装

## レビューポイント
- テストケースは足りているか
- テスト名に不足・違和感はないか
- 各テストでチェックしている内容は妥当か

## UIの変更

## 動作確認状況
- ローカルで確認
## 補足
- 相談、参考資料などがあれば
2023-07-04 00:52:28 +00:00
saito.k
1189e676b9 Merged PR 178: API実装(タスクチェックアウトAPI (Typist))
## 概要
[Task1996: API実装(タスクチェックアウトAPI (Typist))](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1996)

- タスクチェックアウトAPIのTypist用の処理を実装
- テスト実装

## レビューポイント
- DBアクセス処理に不足はないか
- テスト内容に不足はないか
- テストのチェック方法に問題はないか
  - 特に今回の「started_at」はcheckoutした日時を入れるが、それがいつなのかを完全一致でチェックするのは大変なため、checkout前とcheckout後で値が異なっていることを確認するまでのチェックとした
- changeCheckoutPermissionsのPathパラメータにつけたコメントについて
## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認
- テストが通ることを確認

## 補足
- 「タスク 1476: [Sp12-1]アクセストークンの寿命を2時間にする」も実施しています
2023-07-03 01:09:06 +00:00
湯本 開
5be4995d7d Merged PR 158: [改善]ユニットテストの方針・実施方法を検討
## 概要
[Task1978: 検討し、Wikiにまとめる](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1978)

- テスト毎にSQLiteのインメモリモードでDBを作成→データ構築→テスト→DBを破棄をすることで、Service~DBを含んだロジックに対するテストを行う
- サンプルとしてTask一覧のテストを何件か実装

## レビューポイント
- 同様な形式で `features/xxx` 毎にテストを作成する時に問題となりそうなものはないか?

## レビュー対象外
- Wikiにまとめる方の作業は別途依頼予定

## 動作確認状況
- ローカルでテストが動作することを確認
2023-06-27 04:25:13 +00:00