Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 7 additions & 5 deletions src/__tests__/dailyTasks/dailyTaskScoringValues.test.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import { defaultPredefinedDailyTasks } from '../../box/dailyTask/defaultPredefinedDailyTasks';
import { Score } from '../../common/values/scoring.values';
import {
ACTIVE_SERVER_TASK_DEFINITIONS,
MIN_OCCURRENCES_PER_TASK_TYPE,
Expand All @@ -8,14 +7,15 @@ import {
} from '../../dailyTasks/taskGenerator.service';
import { ServerTaskName } from '../../dailyTasks/enum/serverTaskName.enum';
import { uiDailyTasks } from '../../dailyTasks/uiDailyTasks/uiDailyTasks';
import { TASK_CONSTS } from '../../dailyTasks/consts/taskConstants';

describe('daily task scoring values', () => {
it('uses the shared completed daily task score for generated server tasks', () => {
const generator = new TaskGeneratorService();

const task = generator.createTaskRandomValues();

expect(task.points).toBe(Score.DAILY_TASK.COMPLETED);
expect(task.points).toBe(TASK_CONSTS.POINTS.DAILY_TASK.SMALL);
});

it('configures INNER_VOICE as a one-step clan motto task', () => {
Expand Down Expand Up @@ -141,20 +141,22 @@ describe('daily task scoring values', () => {
it('uses the shared completed daily task score for default predefined tasks', () => {
expect(defaultPredefinedDailyTasks).toEqual(
expect.arrayContaining([
expect.objectContaining({ points: Score.DAILY_TASK.COMPLETED }),
expect.objectContaining({
points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL,
}),
]),
);
expect(
defaultPredefinedDailyTasks.every(
(task) => task.points === Score.DAILY_TASK.COMPLETED,
(task) => task.points === TASK_CONSTS.POINTS.DAILY_TASK.SMALL,
),
).toBe(true);
});

it('uses the shared completed daily task score for UI daily tasks', () => {
expect(
Object.values(uiDailyTasks).every(
(task) => task.points === Score.DAILY_TASK.COMPLETED,
(task) => task.points === TASK_CONSTS.POINTS.DAILY_TASK.SMALL,
),
).toBe(true);
});
Expand Down
13 changes: 6 additions & 7 deletions src/__tests__/matchmaking/MatchmakingService/flow.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import { MatchmakingService } from '../../../matchmaking/matchmaking.service';
import { ActiveMatch } from '../../../matchmaking/type/activeMatch.type';
import { SEReason } from '../../../common/service/basicService/SEReason';
import ServiceError from '../../../common/service/basicService/ServiceError';
import { Score } from '../../../common/values/scoring.values';
import { ServerTaskName } from '../../../dailyTasks/enum/serverTaskName.enum';

class InMemoryRedisService {
Expand Down Expand Up @@ -1056,14 +1055,14 @@ describe('MatchmakingService flow', () => {
});
expect(playerService.updatePlayerById).toHaveBeenCalledWith('player-1', {
$inc: {
battlePoints: Score.BATTLE.WIN,
battlePoints: 30,
'gameStatistics.playedBattles': 1,
'gameStatistics.wonBattles': 1,
},
});
expect(playerService.updatePlayerById).toHaveBeenCalledWith('player-2', {
$inc: {
battlePoints: Score.BATTLE.LOSS,
battlePoints: -20,
'gameStatistics.playedBattles': 1,
},
});
Expand Down Expand Up @@ -1133,27 +1132,27 @@ describe('MatchmakingService flow', () => {
expect(finishedMatch.result).toEqual({ winningSide: TeamSide.B });
expect(playerService.updatePlayerById).toHaveBeenCalledWith('player-1', {
$inc: {
battlePoints: Score.BATTLE.LOSS,
battlePoints: -25,
'gameStatistics.playedBattles': 1,
},
});
expect(playerService.updatePlayerById).toHaveBeenCalledWith('player-2', {
$inc: {
battlePoints: Score.BATTLE.WIN,
battlePoints: 40,
'gameStatistics.playedBattles': 1,
'gameStatistics.wonBattles': 1,
},
});
expect(clanService.basicService.updateOneById).toHaveBeenCalledWith(
'clan-1',
{
$inc: { battlePoints: Score.BATTLE.LOSS },
$inc: { battlePoints: -25 },
},
);
expect(clanService.basicService.updateOneById).toHaveBeenCalledWith(
'clan-2',
{
$inc: { battlePoints: Score.BATTLE.WIN },
$inc: { battlePoints: 40 },
},
);
expect(emitterService.EmitNewDailyTaskEvent).toHaveBeenCalledWith(
Expand Down
11 changes: 3 additions & 8 deletions src/__tests__/rewarder/ClanRewarder/rewardForClanEvent.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import { Player } from '../../../player/schemas/player.schema';
import ClanBuilderFactory from '../../clan/data/clanBuilderFactory';
import { Clan } from '../../../clan/clan.schema';
import ClanModule from '../../clan/modules/clan.module';
import { Score } from '../../../common/values/scoring.values';

describe('ClanRewarder.rewardForClanEvent() test suite', () => {
let rewarder: ClanRewarder;
Expand Down Expand Up @@ -49,9 +48,7 @@ describe('ClanRewarder.rewardForClanEvent() test suite', () => {

const clanAfter = await clanModel.findById(createdClan._id);
expect(clanAfter.points).toBe(clanBefore.points);
expect(clanAfter.battlePoints).toBe(
clanBefore.battlePoints + Score.BATTLE.WIN,
);
expect(clanAfter.battlePoints).toBe(clanBefore.battlePoints + 30);
expect(isSuccess).toBe(true);
expect(errors).toBeNull();
});
Expand All @@ -69,9 +66,7 @@ describe('ClanRewarder.rewardForClanEvent() test suite', () => {

const clanAfter = await clanModel.findById(createdClan._id);
expect(clanAfter.points).toBe(clanBefore.points);
expect(clanAfter.battlePoints).toBe(
clanBefore.battlePoints + Score.BATTLE.LOSS,
);
expect(clanAfter.battlePoints).toBe(clanBefore.battlePoints - 20);
expect(isSuccess).toBe(true);
expect(errors).toBeNull();
});
Expand Down Expand Up @@ -143,7 +138,7 @@ describe('ClanRewarder.rewardForClanEvent() test suite', () => {
event,
);

const clanAfter = await clanModel.findById(existingClan._id);
const clanAfter = await clanModel.findById(createdClan._id);
expect(clanAfter.points).toBe(clanBefore.points);
expect(clanAfter.battlePoints).toBe(0);
expect(isSuccess).toBe(false);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ import { PlayerRewarder } from '../../../rewarder/playerRewarder/playerRewarder.
import PlayerBuilderFactory from '../../player/data/playerBuilderFactory';
import PlayerModule from '../../player/modules/player.module';
import { Player } from '../../../player/schemas/player.schema';
import { Score } from '../../../common/values/scoring.values';

describe('PlayerRewarder.rewardForPlayerEvent() test suite', () => {
let rewarder: PlayerRewarder;
Expand Down Expand Up @@ -32,9 +31,7 @@ describe('PlayerRewarder.rewardForPlayerEvent() test suite', () => {

const playerAfter = await playerModel.findById(existingPlayer._id);
expect(playerAfter.points).toBe(playerBefore.points);
expect(playerAfter.battlePoints).toBe(
playerBefore.battlePoints + Score.BATTLE.WIN,
);
expect(playerAfter.battlePoints).toBe(playerBefore.battlePoints + 30);
expect(isSuccess).toBe(true);
expect(errors).toBeNull();
});
Expand All @@ -52,9 +49,7 @@ describe('PlayerRewarder.rewardForPlayerEvent() test suite', () => {

const playerAfter = await playerModel.findById(existingPlayer._id);
expect(playerAfter.points).toBe(playerBefore.points);
expect(playerAfter.battlePoints).toBe(
playerBefore.battlePoints + Score.BATTLE.LOSS,
);
expect(playerAfter.battlePoints).toBe(playerBefore.battlePoints - 20);
expect(isSuccess).toBe(true);
expect(errors).toBeNull();
});
Expand Down
4 changes: 2 additions & 2 deletions src/box/dailyTask/defaultPredefinedDailyTasks.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { ServerTaskName } from '../../dailyTasks/enum/serverTaskName.enum';
import { CreatePredefinedDailyTaskDto } from './dto/createPredefinedDailyTask.dto';
import { Score } from '../../common/values/scoring.values';
import { TASK_CONSTS } from '../../dailyTasks/consts/taskConstants';

/**
* Daily tasks to use as default in box schema.
Expand All @@ -10,7 +10,7 @@ export const defaultPredefinedDailyTasks: CreatePredefinedDailyTaskDto[] = [
type: ServerTaskName.GO_TO_BATTLE,
title: 'Pelaa otteluita',
amount: 5,
points: Score.DAILY_TASK.COMPLETED,
points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL,
coins: 10,
timeLimitMinutes: 60,
},
Expand Down
14 changes: 0 additions & 14 deletions src/common/values/scoring.values.ts

This file was deleted.

35 changes: 32 additions & 3 deletions src/dailyTasks/consts/taskConstants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,18 +19,47 @@
* @property COINS.FACTOR - The factor used to calculate coins (points * FACTOR).
*
* @property TIME - The time to complete the task in milliseconds.
*
* @property DAILY_TASK - Points configuration for daily tasks.
* @property DAILY_TASK.SMALL - Points awarded for small daily tasks.
* @property DAILY_TASK.MEDIUM - Points awarded for medium daily tasks (reserved for future use).
* @property DAILY_TASK.BIG - Points awarded for big daily tasks (reserved for future use).
* @property DAILY_TASK.CANCEL_PENALTY - Points deducted for canceling a daily task.
*
* @property BATTLE - Points configuration for battle tasks.
* @property BATTLE.RANDOM_PAIR - Points configuration for random pair battles.
* @property BATTLE.RANDOM_PAIR.WIN - Points awarded for winning a random pair battle.
* @property BATTLE.RANDOM_PAIR.LOSS - Points deducted for losing a random pair battle.
* @property BATTLE.CLAN_PAIR - Points configuration for clan pair battles.
* @property BATTLE.CLAN_PAIR.WIN - Points awarded for winning a clan pair battle.
* @property BATTLE.CLAN_PAIR.LOSS - Points deducted for losing a clan pair battle.
*
*/
export const TASK_CONSTS = {
AMOUNT: {
MIN: 2,
MAX: 20,
},
POINTS: {
MIN: 5,
MAX: 100,
DAILY_TASK: {
SMALL: 20,
MEDIUM: 0, // Reserved for future use
BIG: 0, // Reserved for future use
CANCEL_PENALTY: 10,
},
BATTLE: {
RANDOM_PAIR: {
WIN: 30,
LOSS: -20,
},
CLAN_PAIR: {
WIN: 40,
LOSS: -25,
},
},
},
COINS: {
FACTOR: 0.5, // Coins are calculated as points * FACTOR
FACTOR: 0.5, // Coins are calculated as points * FACTOR.
},
TIME: 1000 * 60, // Time to complete the task in milliseconds.
};
3 changes: 1 addition & 2 deletions src/dailyTasks/taskGenerator.service.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import { Injectable } from '@nestjs/common';
import { Score } from '../common/values/scoring.values';
import { TASK_CONSTS } from './consts/taskConstants';
import { ServerTaskName } from './enum/serverTaskName.enum';
import { TaskTitle } from './type/taskTitle.type';
Expand Down Expand Up @@ -167,7 +166,7 @@ export class TaskGeneratorService {
private createTaskValues(type: ServerTaskName): TaskInfo {
const definition = this.getDefinition(type);
const amount = definition.createAmount();
const points = Score.DAILY_TASK.COMPLETED;
const points = TASK_CONSTS.POINTS.DAILY_TASK.SMALL;

return {
amount,
Expand Down
Loading
Loading