music-collection/backend/src/song/song.controller.spec.ts
Phill Pover e687852cfa
Some checks failed
Music Collection CI Workflow / test (./backend) (push) Failing after 29s
Music Collection CI Workflow / test (./frontend) (push) Successful in 36s
Music Collection CI Workflow / build-and-push-images (./backend/Dockerfile, git.anatid.net/tabris/music-collection-backend, ./backend) (push) Has been skipped
Music Collection CI Workflow / build-and-push-images (./frontend/Dockerfile, git.anatid.net/tabris/music-collection-frontend, ./frontend) (push) Has been skipped
Music Collection CI Workflow / deploy (push) Has been skipped
Reworking api responses
2025-04-07 03:48:28 +01:00

59 lines
2.3 KiB
TypeScript

import { Test, TestingModule } from '@nestjs/testing';
import { getRepositoryToken } from '@nestjs/typeorm';
import { SongController } from './song.controller';
import { SongService } from './song.service';
import { Song } from './song.entity';
import { Album } from '../album/album.entity';
import { CreateSongDto } from './dto/create-song.dto';
import { UpdateSongDto } from './dto/update-song.dto';
import { DeleteResult, Repository } from 'typeorm';
const mockSong = new Song();
const mockAlbum = new Album();
const mockCreateSongDto = new CreateSongDto();
const mockUpdateSongDto = new UpdateSongDto();
const mockDeleteResult = new DeleteResult();
describe('SongController', () => {
let controller: SongController;
beforeEach(async () => {
const module: TestingModule = await Test.createTestingModule({
controllers: [SongController],
providers: [
SongService,
{
provide: getRepositoryToken(Song),
useValue: {
find: jest.fn().mockResolvedValue([mockSong]),
findOne: jest.fn().mockResolvedValue(mockSong),
findOneBy: jest.fn().mockResolvedValue({ id: 3, title: 'some song', duration: 300, trackNumber: 2, album: mockAlbum }),
create: jest.fn().mockResolvedValue(mockSong),
save: jest.fn().mockResolvedValue({ id: 3, title: 'some song', duration: 300, trackNumber: 2, album: mockAlbum }),
update: jest.fn().mockResolvedValue(mockSong),
delete: jest.fn().mockResolvedValue(mockDeleteResult),
},
},
{
provide: getRepositoryToken(Album),
useValue: {
find: jest.fn().mockResolvedValue([mockAlbum]),
findOne: jest.fn().mockResolvedValue(mockAlbum),
findOneBy: jest.fn().mockResolvedValue({ id: 1, title: 'some album', artist: 'some artist', genre: 'some genre' }),
create: jest.fn().mockResolvedValue(mockAlbum),
save: jest.fn().mockResolvedValue({ id: 1, title: 'some album', artist: 'some artist', genre: 'some genre' }),
update: jest.fn().mockResolvedValue(mockAlbum),
delete: jest.fn().mockResolvedValue(mockDeleteResult),
},
},
]
}).compile();
controller = module.get<SongController>(SongController);
});
it('should be defined', () => {
expect(controller).toBeDefined();
});
});