diff --git a/packages/core/src/usecase/CreateServerForUser.test.ts b/packages/core/src/usecase/CreateServerForUser.test.ts index ceced349..39e1d802 100644 --- a/packages/core/src/usecase/CreateServerForUser.test.ts +++ b/packages/core/src/usecase/CreateServerForUser.test.ts @@ -9,18 +9,13 @@ import { ServerRepository } from '../repository/ServerRepository'; import { UserCreditsRepository } from '../repository/UserCreditsRepository'; import { UserRepository } from '../repository/UserRepository'; import { EventLogger } from '../services/EventLogger'; +import { IdGenerator } from '../services/IdGenerator'; import { ServerManager } from '../services/ServerManager'; import { ServerManagerFactory } from '@tf2qs/providers'; import { ConfigManager } from '../utils/ConfigManager'; import { CreateServerForUser } from './CreateServerForUser'; import { UserBanRepository } from '../repository/UserBanRepository'; -vi.mock("uuid", () => { - return { - v4: () => "test-uuid" - } -}) - const chance = new Chance(); const createTestEnvironment = () => { @@ -33,6 +28,7 @@ const createTestEnvironment = () => { const configManager = mock(); const userRepository = mock(); const guildParametersRepository = mock(); + const idGenerator = mock(); const userBanRepository = mock({ isUserBanned: vi.fn().mockResolvedValue({ isBanned: false, reason: '' }) }); @@ -40,6 +36,8 @@ const createTestEnvironment = () => { // Configure the factory to return the mocked server manager for any Region serverManagerFactory.createServerManager.mockReturnValue(serverManager); + when(idGenerator.generate).calledWith().thenReturn("test-uuid"); + when(configManager.getCreditsConfig).calledWith().thenReturn({ enabled: true }); @@ -104,6 +102,7 @@ const createTestEnvironment = () => { userRepository, guildParametersRepository, userBanRepository, + idGenerator, }), mocks: { serverRepository, @@ -116,6 +115,7 @@ const createTestEnvironment = () => { userRepository, guildParametersRepository, userBanRepository, + idGenerator, trx, statusUpdater }, diff --git a/packages/core/src/usecase/CreateServerForUser.ts b/packages/core/src/usecase/CreateServerForUser.ts index f7d0faa3..280c82fc 100644 --- a/packages/core/src/usecase/CreateServerForUser.ts +++ b/packages/core/src/usecase/CreateServerForUser.ts @@ -6,10 +6,10 @@ import { UserCreditsRepository } from "../repository/UserCreditsRepository"; import { UserRepository } from "../repository/UserRepository"; import { UserBanRepository } from "../repository/UserBanRepository"; import { EventLogger } from "../services/EventLogger"; +import { IdGenerator } from "../services/IdGenerator"; import { ServerManagerFactory } from '@tf2qs/providers'; import { StatusUpdater } from "../services/StatusUpdater"; import { ConfigManager } from "../utils/ConfigManager"; -import { v4 as uuid } from "uuid"; import SteamID from "steamid"; import { logger } from '@tf2qs/telemetry'; export class CreateServerForUser { @@ -24,6 +24,7 @@ export class CreateServerForUser { configManager: ConfigManager, userRepository: UserRepository, userBanRepository: UserBanRepository, + idGenerator: IdGenerator, }) { } public async execute(args: { @@ -33,7 +34,7 @@ export class CreateServerForUser { guildId: string, statusUpdater: StatusUpdater }): Promise { - const { serverManagerFactory, serverRepository, userCreditsRepository, eventLogger, sourceTvEventLogger, configManager, userRepository, guildParametersRepository, userBanRepository } = this.dependencies; + const { serverManagerFactory, serverRepository, userCreditsRepository, eventLogger, sourceTvEventLogger, configManager, userRepository, guildParametersRepository, userBanRepository, idGenerator } = this.dependencies; const statusUpdater = args.statusUpdater; const serverManager = serverManagerFactory.createServerManager(args.region); @@ -92,7 +93,7 @@ export class CreateServerForUser { throw new UserError('You do not have enough credits to start a server.') } } - const serverId = uuid(); + const serverId = idGenerator.generate(); await serverRepository.runInTransaction(async (trx) => { const allServers = await serverRepository.getAllServersByUserId(args.creatorId, trx); diff --git a/packages/entrypoints/src/discordBot.ts b/packages/entrypoints/src/discordBot.ts index 038e7305..02a55619 100644 --- a/packages/entrypoints/src/discordBot.ts +++ b/packages/entrypoints/src/discordBot.ts @@ -190,7 +190,8 @@ export async function startDiscordBot() { configManager: defaultConfigManager, userRepository, guildParametersRepository, - userBanRepository + userBanRepository, + idGenerator: new UuidIdGenerator() }), createCreditsPurchaseOrder: new CreateCreditsPurchaseOrder({ creditOrdersRepository,