universo-platform-3d
92 строки · 3.1 Кб
1import { INestApplication } from '@nestjs/common'
2import { Test, TestingModule } from '@nestjs/testing'
3import request from 'supertest'
4import { GodotServerOverrideConfigController } from '../src/godot-server-override-config/godot-server-override-config.controller'
5import { GodotServerOverrideConfigService } from '../src/godot-server-override-config/godot-server-override-config.service'
6import { FileUploadService } from '../src/util/file-upload/file-upload.service'
7import { SpaceManagerExternalService } from './../src/zone/space-manager-external.service'
8
9import { beforeAll, describe, it } from 'vitest'
10import { FirebaseAuthenticationService } from '../src/firebase/firebase-authentication.service'
11import { LoggerModule } from '../src/util/logger/logger.module'
12import { getMockClassesForProvidersArray } from './mocks/service.mocks'
13import { spaceManagerExternalServiceMock } from './mocks/space-manager-external-service.mock'
14
15describe('Godot Server Override Config (Integration)', () => {
16let app: INestApplication
17let service: GodotServerOverrideConfigService
18// Modify mockEntity as needed for the test
19const id = 'some-space-id'
20const mockEntity: any = {
21spaceId: id
22}
23
24beforeAll(async () => {
25const moduleFixture: TestingModule = await Test.createTestingModule({
26imports: [LoggerModule],
27controllers: [GodotServerOverrideConfigController],
28providers: [
29...getMockClassesForProvidersArray([
30FirebaseAuthenticationService,
31FileUploadService,
32GodotServerOverrideConfigService
33]),
34{
35provide: SpaceManagerExternalService,
36useValue: spaceManagerExternalServiceMock
37}
38]
39}).compile()
40
41app = moduleFixture.createNestApplication()
42await app.init()
43
44service = moduleFixture.get(GodotServerOverrideConfigService)
45})
46
47// TODO having trouble with async/await tests here, but works on Postman
48// xit('GET one by space ID', async () => {
49// // Arrange
50// vi
51// .spyOn(service, 'findOne')
52// .mockResolvedValue(mockEntity as GodotServerOverrideConfigDocument)
53// // TODO this test doesn't do much
54// jest.spyOn(service, 'findOneFormatted').mockResolvedValue('someString')
55
56// // Act
57// await request(app.getHttpServer())
58// .get(`/godot-server-override-config/${id}`)
59
60// // Assert
61// .expect(200)
62// .expect(await service.findOneFormatted('some-id'))
63// })
64
65it('GET one without space ID: should return default', async () => {
66// Arrange
67
68// Act
69await request(app.getHttpServer())
70.get(`/godot-server-override-config/`)
71
72// Assert
73.expect(404)
74})
75
76// running into weirdness with a 400 bad request here, but it works in Postman
77// xit('create one', async () => {
78// // Arrange
79// vi
80// .spyOn(service, 'create')
81// .mockResolvedValue(mockEntity as GodotServerOverrideConfigDocument)
82
83// // Act
84// await request(app.getHttpServer())
85// .post('/godot-server-override-config')
86// .send(mockEntity)
87
88// // Assert
89// .expect(201)
90// .expect(await service.create(mockEntity))
91// })
92})
93