makabe.t 2dcb1c1f84 Merged PR 396: API実装(オプションアイテム取得)
## 概要
[Task2592: API実装(オプションアイテム取得)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2592)

- オプションアイテム取得APIとテストを実装しました。

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

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-09-11 08:31:03 +00:00

92 lines
4.0 KiB
TypeScript

import { DataSource } from 'typeorm';
import { Test, TestingModule } from '@nestjs/testing';
import { ConfigModule } from '@nestjs/config';
import { UserGroupsRepositoryModule } from '../../repositories/user_groups/user_groups.repository.module';
import { TasksRepositoryModule } from '../../repositories/tasks/tasks.repository.module';
import { AuthModule } from '../../features/auth/auth.module';
import { AdB2cModule } from '../../gateways/adb2c/adb2c.module';
import { AccountsModule } from '../../features/accounts/accounts.module';
import { UsersModule } from '../../features/users/users.module';
import { FilesModule } from '../../features/files/files.module';
import { TasksModule } from '../../features/tasks/tasks.module';
import { SendGridModule } from '../../features/../gateways/sendgrid/sendgrid.module';
import { LicensesModule } from '../../features/licenses/licenses.module';
import { AccountsRepositoryModule } from '../../repositories/accounts/accounts.repository.module';
import { UsersRepositoryModule } from '../../repositories/users/users.repository.module';
import { LicensesRepositoryModule } from '../../repositories/licenses/licenses.repository.module';
import { AudioFilesRepositoryModule } from '../../repositories/audio_files/audio_files.repository.module';
import { AudioOptionItemsRepositoryModule } from '../../repositories/audio_option_items/audio_option_items.repository.module';
import { CheckoutPermissionsRepositoryModule } from '../../repositories/checkout_permissions/checkout_permissions.repository.module';
import { WorktypesRepositoryModule } from '../../repositories/worktypes/worktypes.repository.module';
import { NotificationModule } from '../../features//notification/notification.module';
import { NotificationhubModule } from '../../gateways/notificationhub/notificationhub.module';
import { BlobstorageModule } from '../../gateways/blobstorage/blobstorage.module';
import { AuthGuardsModule } from '../../common/guards/auth/authguards.module';
import { SortCriteriaRepositoryModule } from '../../repositories/sort_criteria/sort_criteria.repository.module';
import { AuthService } from '../../features/auth/auth.service';
import { AccountsService } from '../../features/accounts/accounts.service';
import { UsersService } from '../../features/users/users.service';
import { NotificationhubService } from '../../gateways/notificationhub/notificationhub.service';
import { FilesService } from '../../features/files/files.service';
import { LicensesService } from '../../features/licenses/licenses.service';
import { TasksService } from '../../features/tasks/tasks.service';
export const makeTestingModule = async (
datasource: DataSource,
): Promise<TestingModule> => {
try {
const module: TestingModule = await Test.createTestingModule({
imports: [
ConfigModule.forRoot({
envFilePath: ['.env.local', '.env'],
isGlobal: true,
}),
AuthModule,
AdB2cModule,
AccountsModule,
UsersModule,
FilesModule,
TasksModule,
UsersModule,
SendGridModule,
LicensesModule,
AccountsRepositoryModule,
UsersRepositoryModule,
LicensesRepositoryModule,
AudioFilesRepositoryModule,
AudioOptionItemsRepositoryModule,
TasksRepositoryModule,
CheckoutPermissionsRepositoryModule,
UserGroupsRepositoryModule,
UserGroupsRepositoryModule,
NotificationModule,
NotificationhubModule,
BlobstorageModule,
AuthGuardsModule,
SortCriteriaRepositoryModule,
WorktypesRepositoryModule,
],
providers: [
AuthService,
AccountsService,
UsersService,
NotificationhubService,
FilesService,
TasksService,
LicensesService,
],
})
.useMocker(async (token) => {
switch (token) {
case DataSource:
return datasource;
}
})
.compile();
return module;
} catch (e) {
console.log(e);
}
};