@takaro/module-test 0.0.0-dev.4dbe15b → 0.0.0-stage
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -259
- package/package.json +3 -42
- package/dist/.source-hash +0 -1
- package/dist/config.d.ts +0 -49
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js +0 -54
- package/dist/config.js.map +0 -1
- package/dist/currencyLedger.d.ts +0 -13
- package/dist/currencyLedger.d.ts.map +0 -1
- package/dist/currencyLedger.js +0 -39
- package/dist/currencyLedger.js.map +0 -1
- package/dist/fakeClient.d.ts +0 -48
- package/dist/fakeClient.d.ts.map +0 -1
- package/dist/fakeClient.js +0 -335
- package/dist/fakeClient.js.map +0 -1
- package/dist/fixtureQuery.d.ts +0 -33
- package/dist/fixtureQuery.d.ts.map +0 -1
- package/dist/fixtureQuery.js +0 -120
- package/dist/fixtureQuery.js.map +0 -1
- package/dist/fixtures.d.ts +0 -49
- package/dist/fixtures.d.ts.map +0 -1
- package/dist/fixtures.js +0 -152
- package/dist/fixtures.js.map +0 -1
- package/dist/installation.d.ts +0 -23
- package/dist/installation.d.ts.map +0 -1
- package/dist/installation.js +0 -170
- package/dist/installation.js.map +0 -1
- package/dist/intrinsics.d.ts +0 -9
- package/dist/intrinsics.d.ts.map +0 -1
- package/dist/intrinsics.js +0 -33
- package/dist/intrinsics.js.map +0 -1
- package/dist/loadModule.d.ts +0 -11
- package/dist/loadModule.d.ts.map +0 -1
- package/dist/loadModule.js +0 -173
- package/dist/loadModule.js.map +0 -1
- package/dist/main.d.ts +0 -22
- package/dist/main.d.ts.map +0 -1
- package/dist/main.js +0 -12
- package/dist/main.js.map +0 -1
- package/dist/moduleExport.d.ts +0 -74
- package/dist/moduleExport.d.ts.map +0 -1
- package/dist/moduleExport.js +0 -2
- package/dist/moduleExport.js.map +0 -1
- package/dist/moduleTest.d.ts +0 -100
- package/dist/moduleTest.d.ts.map +0 -1
- package/dist/moduleTest.js +0 -195
- package/dist/moduleTest.js.map +0 -1
- package/dist/query.d.ts +0 -8
- package/dist/query.d.ts.map +0 -1
- package/dist/query.js +0 -51
- package/dist/query.js.map +0 -1
- package/dist/stubbedClient.d.ts +0 -20
- package/dist/stubbedClient.d.ts.map +0 -1
- package/dist/stubbedClient.js +0 -44
- package/dist/stubbedClient.js.map +0 -1
- package/dist/systemConfig.d.ts +0 -19
- package/dist/systemConfig.d.ts.map +0 -1
- package/dist/systemConfig.js +0 -199
- package/dist/systemConfig.js.map +0 -1
- package/dist/triggers.d.ts +0 -53
- package/dist/triggers.d.ts.map +0 -1
- package/dist/triggers.js +0 -116
- package/dist/triggers.js.map +0 -1
- package/dist/variableStore.d.ts +0 -51
- package/dist/variableStore.d.ts.map +0 -1
- package/dist/variableStore.js +0 -201
- package/dist/variableStore.js.map +0 -1
package/dist/fakeClient.js
DELETED
|
@@ -1,335 +0,0 @@
|
|
|
1
|
-
import sinon from 'sinon';
|
|
2
|
-
import { CurrencyLedger } from './currencyLedger.js';
|
|
3
|
-
import { VariableStore } from './variableStore.js';
|
|
4
|
-
import { buildClientProxy } from './stubbedClient.js';
|
|
5
|
-
import { runQuery, PLAYER_FILTERS, POG_FILTERS, INSTALLATION_FILTERS, MODULE_FILTERS, COMMAND_FILTERS, } from './fixtureQuery.js';
|
|
6
|
-
export class MissingFixtureError extends Error {
|
|
7
|
-
constructor(method, hint) {
|
|
8
|
-
super(`${method}() has no fixture in this test. ${hint}`);
|
|
9
|
-
this.name = 'MissingFixtureError';
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
// Re-exported: a search that silently ignores its filter/sort/page would let a single-player
|
|
13
|
-
// fixture make completely broken player resolution pass every assertion downstream.
|
|
14
|
-
export { UnsupportedQueryError } from './query.js';
|
|
15
|
-
const DEFAULT_SETTINGS = {
|
|
16
|
-
commandPrefix: '/',
|
|
17
|
-
serverChatName: 'Takaro',
|
|
18
|
-
currencyName: 'test coin',
|
|
19
|
-
};
|
|
20
|
-
// An axios-shaped 200, exported so a test stubbing a refused method can produce this envelope.
|
|
21
|
-
export function ok(data) {
|
|
22
|
-
return {
|
|
23
|
-
data,
|
|
24
|
-
status: 200,
|
|
25
|
-
statusText: 'OK',
|
|
26
|
-
headers: {},
|
|
27
|
-
config: { headers: {} },
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
// Deep-clones so module code cannot mutate a fixture row through the returned body — no HTTP
|
|
31
|
-
// client can do that either. Same reason the inbound payload goes through `toJobPayload`.
|
|
32
|
-
function body(value) {
|
|
33
|
-
return JSON.parse(JSON.stringify(value));
|
|
34
|
-
}
|
|
35
|
-
export function single(data) {
|
|
36
|
-
return ok({ data: body(data), meta: { serverTime: new Date().toISOString() } });
|
|
37
|
-
}
|
|
38
|
-
export function paginated(results, meta = {}) {
|
|
39
|
-
return ok({
|
|
40
|
-
data: body(results),
|
|
41
|
-
meta: {
|
|
42
|
-
serverTime: new Date().toISOString(),
|
|
43
|
-
page: meta.page ?? 0,
|
|
44
|
-
limit: meta.limit ?? 100,
|
|
45
|
-
total: meta.total ?? results.length,
|
|
46
|
-
},
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
const empty = () => ok({ meta: { serverTime: new Date().toISOString() } });
|
|
50
|
-
// What `gameServerControllerGetPlayers` really returns: `GameServerService.getPlayers` passes the
|
|
51
|
-
// gameserver's own `IGamePlayer[]` straight through, not a `PlayerOnGameserverOutputDTOAPI`.
|
|
52
|
-
function toGamePlayer(pog, player) {
|
|
53
|
-
const defined = (entries) => Object.fromEntries(Object.entries(entries).filter(([, value]) => value !== undefined));
|
|
54
|
-
return defined({
|
|
55
|
-
gameId: pog.gameId,
|
|
56
|
-
name: player?.name,
|
|
57
|
-
steamId: player?.steamId,
|
|
58
|
-
epicOnlineServicesId: player?.epicOnlineServicesId,
|
|
59
|
-
xboxLiveId: player?.xboxLiveId,
|
|
60
|
-
platformId: player?.platformId,
|
|
61
|
-
ip: pog.ip,
|
|
62
|
-
ping: pog.ping,
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
/** @internal Exported for tests only. */
|
|
66
|
-
export function createFakeClient(options) {
|
|
67
|
-
const variables = options.variables ?? new VariableStore();
|
|
68
|
-
const currency = options.currency ?? new CurrencyLedger();
|
|
69
|
-
const settings = new Map(Object.entries({ ...DEFAULT_SETTINGS, ...options.settings }));
|
|
70
|
-
const installations = [...options.installations];
|
|
71
|
-
const messages = [];
|
|
72
|
-
const now = options.now ?? (() => new Date());
|
|
73
|
-
const players = new Map(options.players.map((player) => [player.id, player]));
|
|
74
|
-
const pogs = [...options.pogs];
|
|
75
|
-
// One game server exists per module test; a mismatched id would otherwise read as "nobody is
|
|
76
|
-
// online" rather than "you asked about the wrong server".
|
|
77
|
-
const requireGameServer = (method, id) => {
|
|
78
|
-
if (id !== options.gameServerId) {
|
|
79
|
-
throw new MissingFixtureError(method, `No game server '${id}' in the fixture; this test has one, ${options.gameServerId}.`);
|
|
80
|
-
}
|
|
81
|
-
return id;
|
|
82
|
-
};
|
|
83
|
-
const requirePog = (method, predicate) => {
|
|
84
|
-
const pog = pogs.find(predicate);
|
|
85
|
-
if (!pog) {
|
|
86
|
-
throw new MissingFixtureError(method, 'No matching player-on-gameserver in the fixture.');
|
|
87
|
-
}
|
|
88
|
-
return pog;
|
|
89
|
-
};
|
|
90
|
-
const variableStubs = {
|
|
91
|
-
variableControllerSearch: sinon.stub(),
|
|
92
|
-
variableControllerCreate: sinon.stub(),
|
|
93
|
-
variableControllerUpdate: sinon.stub(),
|
|
94
|
-
variableControllerDelete: sinon.stub(),
|
|
95
|
-
variableControllerFindOne: sinon.stub(),
|
|
96
|
-
};
|
|
97
|
-
variableStubs.variableControllerSearch?.callsFake(async (query) => {
|
|
98
|
-
const { results, ...meta } = variables.search(query ?? {}, now());
|
|
99
|
-
return paginated(results, meta);
|
|
100
|
-
});
|
|
101
|
-
variableStubs.variableControllerCreate?.callsFake(async (input) => {
|
|
102
|
-
if (!input) {
|
|
103
|
-
throw new MissingFixtureError('variableControllerCreate', 'Called with no body.');
|
|
104
|
-
}
|
|
105
|
-
return single(variables.create(input, now()));
|
|
106
|
-
});
|
|
107
|
-
variableStubs.variableControllerUpdate?.callsFake(async (id, input) => {
|
|
108
|
-
if (!input) {
|
|
109
|
-
throw new MissingFixtureError('variableControllerUpdate', 'Called with no body.');
|
|
110
|
-
}
|
|
111
|
-
return single(variables.update(id, input, now()));
|
|
112
|
-
});
|
|
113
|
-
variableStubs.variableControllerDelete?.callsFake(async (id) => {
|
|
114
|
-
variables.delete(id, now());
|
|
115
|
-
return empty();
|
|
116
|
-
});
|
|
117
|
-
variableStubs.variableControllerFindOne?.callsFake(async (id) => single(variables.findOne(id, now())));
|
|
118
|
-
const settingsStubs = { settingsControllerGetOne: sinon.stub() };
|
|
119
|
-
settingsStubs.settingsControllerGetOne?.callsFake(async (key, gameServerId) => {
|
|
120
|
-
// Settings are per-gameserver with a domain fallback in production. One map is only a
|
|
121
|
-
// faithful model while every read is for the one server this test has.
|
|
122
|
-
if (gameServerId !== undefined) {
|
|
123
|
-
requireGameServer('settingsControllerGetOne', gameServerId);
|
|
124
|
-
}
|
|
125
|
-
const value = settings.get(key);
|
|
126
|
-
if (value === undefined) {
|
|
127
|
-
throw new MissingFixtureError('settingsControllerGetOne', `No value for setting '${key}'. Pass it via the test's \`settings\` option.`);
|
|
128
|
-
}
|
|
129
|
-
return single({ key, value, type: 'override' });
|
|
130
|
-
});
|
|
131
|
-
const gameserverStubs = {
|
|
132
|
-
gameServerControllerSendMessage: sinon.stub(),
|
|
133
|
-
gameServerControllerGiveItem: sinon.stub(),
|
|
134
|
-
gameServerControllerGiveItems: sinon.stub(),
|
|
135
|
-
gameServerControllerExecuteCommand: sinon.stub(),
|
|
136
|
-
gameServerControllerTeleportPlayer: sinon.stub(),
|
|
137
|
-
gameServerControllerKickPlayer: sinon.stub(),
|
|
138
|
-
gameServerControllerShutdown: sinon.stub(),
|
|
139
|
-
gameServerControllerGetPlayers: sinon.stub(),
|
|
140
|
-
gameServerControllerGetOne: sinon.stub(),
|
|
141
|
-
};
|
|
142
|
-
gameserverStubs.gameServerControllerSendMessage?.callsFake(async (gameServerId, input) => {
|
|
143
|
-
messages.push({
|
|
144
|
-
gameServerId,
|
|
145
|
-
message: input?.message ?? '',
|
|
146
|
-
recipientGameId: input?.opts?.recipient?.gameId,
|
|
147
|
-
});
|
|
148
|
-
return empty();
|
|
149
|
-
});
|
|
150
|
-
gameserverStubs.gameServerControllerGiveItem?.callsFake(async () => empty());
|
|
151
|
-
gameserverStubs.gameServerControllerGiveItems?.callsFake(() => {
|
|
152
|
-
throw new MissingFixtureError('gameServerControllerGiveItems', 'Stub it on `this.client.stubs.gameserver` with the per-line results this test needs.');
|
|
153
|
-
});
|
|
154
|
-
gameserverStubs.gameServerControllerExecuteCommand?.callsFake(async () => single({ rawResult: '', success: true, errorMessage: undefined }));
|
|
155
|
-
gameserverStubs.gameServerControllerTeleportPlayer?.callsFake(async () => empty());
|
|
156
|
-
gameserverStubs.gameServerControllerKickPlayer?.callsFake(async () => empty());
|
|
157
|
-
gameserverStubs.gameServerControllerShutdown?.callsFake(async () => empty());
|
|
158
|
-
gameserverStubs.gameServerControllerGetPlayers?.callsFake(async (id) => {
|
|
159
|
-
requireGameServer('gameServerControllerGetPlayers', id);
|
|
160
|
-
return paginated(pogs
|
|
161
|
-
.filter((pog) => pog.gameServerId === id && pog.online)
|
|
162
|
-
.map((pog) => toGamePlayer(pog, players.get(pog.playerId))));
|
|
163
|
-
});
|
|
164
|
-
gameserverStubs.gameServerControllerGetOne?.callsFake(async (id) => {
|
|
165
|
-
requireGameServer('gameServerControllerGetOne', id);
|
|
166
|
-
return single({ id, name: 'Test server', type: 'MOCK', connectionInfo: '{}', reachable: true, enabled: true });
|
|
167
|
-
});
|
|
168
|
-
const playerStubs = {
|
|
169
|
-
playerControllerGetOne: sinon.stub(),
|
|
170
|
-
playerControllerSearch: sinon.stub(),
|
|
171
|
-
playerControllerAssignRole: sinon.stub(),
|
|
172
|
-
banControllerCreate: sinon.stub(),
|
|
173
|
-
};
|
|
174
|
-
playerStubs.playerControllerGetOne?.callsFake(async (id) => {
|
|
175
|
-
const player = players.get(id);
|
|
176
|
-
if (!player) {
|
|
177
|
-
throw new MissingFixtureError('playerControllerGetOne', `No player '${id}' in the fixture.`);
|
|
178
|
-
}
|
|
179
|
-
return single(player);
|
|
180
|
-
});
|
|
181
|
-
playerStubs.playerControllerSearch?.callsFake(async (query) => {
|
|
182
|
-
const { results, ...meta } = runQuery('playerControllerSearch', [...players.values()], query, PLAYER_FILTERS);
|
|
183
|
-
return paginated(results, meta);
|
|
184
|
-
});
|
|
185
|
-
playerStubs.playerControllerAssignRole?.callsFake(async () => empty());
|
|
186
|
-
playerStubs.banControllerCreate?.callsFake(async () => empty());
|
|
187
|
-
const pogStubs = {
|
|
188
|
-
playerOnGameServerControllerAddCurrency: sinon.stub(),
|
|
189
|
-
playerOnGameServerControllerDeductCurrency: sinon.stub(),
|
|
190
|
-
playerOnGameServerControllerTransactBetweenPlayers: sinon.stub(),
|
|
191
|
-
playerOnGameServerControllerSearch: sinon.stub(),
|
|
192
|
-
playerOnGameServerControllerGetOne: sinon.stub(),
|
|
193
|
-
};
|
|
194
|
-
// Resolve by PLAYER id — currency endpoints take `params.playerId`. `transactBetweenPlayers`
|
|
195
|
-
// resolves by POG ROW id instead (production's asymmetry, not the harness's); see findPogById.
|
|
196
|
-
const findPogFor = (method, gameServerId, playerId) => requirePog(method, (pog) => pog.gameServerId === gameServerId && pog.playerId === playerId);
|
|
197
|
-
// Resolve by POG row id. The `gameServerId` check is the harness being stricter than
|
|
198
|
-
// production, which never re-checks it — a cross-server POG id here is a test mistake.
|
|
199
|
-
const findPogById = (method, gameServerId, pogId) => requirePog(method, (pog) => pog.gameServerId === gameServerId && pog.id === pogId);
|
|
200
|
-
pogStubs.playerOnGameServerControllerAddCurrency?.callsFake(async (gameServerId, playerId, input) => {
|
|
201
|
-
const pog = findPogFor('playerOnGameServerControllerAddCurrency', gameServerId, playerId);
|
|
202
|
-
pog.currency = currency.add(pog.playerId, input?.currency ?? 0);
|
|
203
|
-
return single(pog);
|
|
204
|
-
});
|
|
205
|
-
pogStubs.playerOnGameServerControllerDeductCurrency?.callsFake(async (gameServerId, playerId, input) => {
|
|
206
|
-
const pog = findPogFor('playerOnGameServerControllerDeductCurrency', gameServerId, playerId);
|
|
207
|
-
pog.currency = currency.deduct(pog.playerId, input?.currency ?? 0);
|
|
208
|
-
return single(pog);
|
|
209
|
-
});
|
|
210
|
-
pogStubs.playerOnGameServerControllerTransactBetweenPlayers?.callsFake(async (gameServerId, sender, receiver, input) => {
|
|
211
|
-
// POG row ids, not player ids, matching what the real endpoint resolves.
|
|
212
|
-
const from = findPogById('playerOnGameServerControllerTransactBetweenPlayers', gameServerId, sender);
|
|
213
|
-
const to = findPogById('playerOnGameServerControllerTransactBetweenPlayers', gameServerId, receiver);
|
|
214
|
-
currency.transact(from.playerId, to.playerId, input?.currency ?? 0);
|
|
215
|
-
from.currency = currency.balanceOf(from.playerId);
|
|
216
|
-
to.currency = currency.balanceOf(to.playerId);
|
|
217
|
-
return empty();
|
|
218
|
-
});
|
|
219
|
-
pogStubs.playerOnGameServerControllerSearch?.callsFake(async (query) => {
|
|
220
|
-
const { results, ...meta } = runQuery('playerOnGameServerControllerSearch', pogs, query, POG_FILTERS);
|
|
221
|
-
return paginated(results, meta);
|
|
222
|
-
});
|
|
223
|
-
pogStubs.playerOnGameServerControllerGetOne?.callsFake(async (gameServerId, playerId) => single(requirePog('playerOnGameServerControllerGetOne', (pog) => pog.gameServerId === gameServerId && pog.playerId === playerId)));
|
|
224
|
-
const moduleStubs = {
|
|
225
|
-
moduleInstallationsControllerGetInstalledModules: sinon.stub(),
|
|
226
|
-
moduleVersionControllerGetModuleVersion: sinon.stub(),
|
|
227
|
-
moduleControllerSearch: sinon.stub(),
|
|
228
|
-
moduleControllerCreate: sinon.stub(),
|
|
229
|
-
moduleControllerUpdate: sinon.stub(),
|
|
230
|
-
moduleInstallationsControllerInstallModule: sinon.stub(),
|
|
231
|
-
};
|
|
232
|
-
moduleStubs.moduleInstallationsControllerGetInstalledModules?.callsFake(async (query) => {
|
|
233
|
-
const { results, ...meta } = runQuery('moduleInstallationsControllerGetInstalledModules', installations, query, INSTALLATION_FILTERS);
|
|
234
|
-
return paginated(results, meta);
|
|
235
|
-
});
|
|
236
|
-
moduleStubs.moduleVersionControllerGetModuleVersion?.callsFake(async (versionId) => {
|
|
237
|
-
const installation = installations.find((candidate) => candidate.versionId === versionId);
|
|
238
|
-
if (!installation) {
|
|
239
|
-
throw new MissingFixtureError('moduleVersionControllerGetModuleVersion', `No installed module with versionId '${versionId}'.`);
|
|
240
|
-
}
|
|
241
|
-
return single(installation.version);
|
|
242
|
-
});
|
|
243
|
-
moduleStubs.moduleControllerSearch?.callsFake(async (query) => {
|
|
244
|
-
const modules = installations.map((installation) => installation.module);
|
|
245
|
-
const { results, ...meta } = runQuery('moduleControllerSearch', modules, query, MODULE_FILTERS);
|
|
246
|
-
return paginated(results, meta);
|
|
247
|
-
});
|
|
248
|
-
moduleStubs.moduleControllerCreate?.callsFake(() => {
|
|
249
|
-
throw new MissingFixtureError('moduleControllerCreate', 'Creating modules is not modelled by this tier.');
|
|
250
|
-
});
|
|
251
|
-
moduleStubs.moduleControllerUpdate?.callsFake(() => {
|
|
252
|
-
throw new MissingFixtureError('moduleControllerUpdate', 'Updating modules is not modelled by this tier.');
|
|
253
|
-
});
|
|
254
|
-
moduleStubs.moduleInstallationsControllerInstallModule?.callsFake(() => {
|
|
255
|
-
throw new MissingFixtureError('moduleInstallationsControllerInstallModule', "Install modules up front via the test's `alsoInstalled` option instead.");
|
|
256
|
-
});
|
|
257
|
-
const itemStubs = {
|
|
258
|
-
itemControllerFindOne: sinon.stub(),
|
|
259
|
-
itemControllerSearch: sinon.stub(),
|
|
260
|
-
};
|
|
261
|
-
const noItemFixture = (method) => {
|
|
262
|
-
throw new MissingFixtureError(method, 'Stub it on `this.client.stubs.item` with the items this test needs.');
|
|
263
|
-
};
|
|
264
|
-
itemStubs.itemControllerFindOne?.callsFake(() => noItemFixture('itemControllerFindOne'));
|
|
265
|
-
itemStubs.itemControllerSearch?.callsFake(() => noItemFixture('itemControllerSearch'));
|
|
266
|
-
const itemSetStubs = { itemSetControllerGetOne: sinon.stub() };
|
|
267
|
-
itemSetStubs.itemSetControllerGetOne?.callsFake(() => {
|
|
268
|
-
throw new MissingFixtureError('itemSetControllerGetOne', 'Stub it on `this.client.stubs.itemSet` with the set this test needs.');
|
|
269
|
-
});
|
|
270
|
-
const commandStubs = {
|
|
271
|
-
commandControllerSearch: sinon.stub(),
|
|
272
|
-
commandControllerCreate: sinon.stub(),
|
|
273
|
-
commandControllerRemove: sinon.stub(),
|
|
274
|
-
};
|
|
275
|
-
commandStubs.commandControllerSearch?.callsFake(async (query) => {
|
|
276
|
-
const rows = installations.flatMap((installation) => installation.version.commands.map((command) => ({ command, moduleId: installation.moduleId })));
|
|
277
|
-
const { results, ...meta } = runQuery('commandControllerSearch', rows, query, COMMAND_FILTERS);
|
|
278
|
-
return paginated(results.map((row) => row.command), meta);
|
|
279
|
-
});
|
|
280
|
-
commandStubs.commandControllerCreate?.callsFake(() => {
|
|
281
|
-
throw new MissingFixtureError('commandControllerCreate', 'Module editing is not modelled by this tier.');
|
|
282
|
-
});
|
|
283
|
-
commandStubs.commandControllerRemove?.callsFake(() => {
|
|
284
|
-
throw new MissingFixtureError('commandControllerRemove', 'Module editing is not modelled by this tier.');
|
|
285
|
-
});
|
|
286
|
-
const discordStubs = { discordControllerSendMessage: sinon.stub() };
|
|
287
|
-
discordStubs.discordControllerSendMessage?.callsFake(async () => empty());
|
|
288
|
-
// No event store: Takaro writes events around the VM, not module code, so resolving `[]` would
|
|
289
|
-
// be a lie — a "no events" pass on a test that never exercised the code under test.
|
|
290
|
-
const eventStubs = { eventControllerSearch: sinon.stub() };
|
|
291
|
-
eventStubs.eventControllerSearch?.callsFake(() => {
|
|
292
|
-
throw new MissingFixtureError('eventControllerSearch', 'This tier keeps no event history. Stub it on `this.client.stubs.event` with the events this test needs.');
|
|
293
|
-
});
|
|
294
|
-
const shopOrderStubs = {
|
|
295
|
-
shopOrderControllerClaim: sinon.stub(),
|
|
296
|
-
shopOrderControllerSearch: sinon.stub(),
|
|
297
|
-
shopOrderControllerCreate: sinon.stub(),
|
|
298
|
-
};
|
|
299
|
-
const noShopFixture = (method) => {
|
|
300
|
-
throw new MissingFixtureError(method, 'Stub it on `this.client.stubs.shopOrder` with the orders this test needs.');
|
|
301
|
-
};
|
|
302
|
-
shopOrderStubs.shopOrderControllerClaim?.callsFake(() => noShopFixture('shopOrderControllerClaim'));
|
|
303
|
-
shopOrderStubs.shopOrderControllerSearch?.callsFake(() => noShopFixture('shopOrderControllerSearch'));
|
|
304
|
-
shopOrderStubs.shopOrderControllerCreate?.callsFake(() => noShopFixture('shopOrderControllerCreate'));
|
|
305
|
-
const shopListingStubs = { shopListingControllerSearch: sinon.stub() };
|
|
306
|
-
shopListingStubs.shopListingControllerSearch?.callsFake(() => noShopFixture('shopListingControllerSearch'));
|
|
307
|
-
const stubs = {
|
|
308
|
-
command: commandStubs,
|
|
309
|
-
discord: discordStubs,
|
|
310
|
-
event: eventStubs,
|
|
311
|
-
gameserver: gameserverStubs,
|
|
312
|
-
item: itemStubs,
|
|
313
|
-
itemSet: itemSetStubs,
|
|
314
|
-
module: moduleStubs,
|
|
315
|
-
player: playerStubs,
|
|
316
|
-
playerOnGameserver: pogStubs,
|
|
317
|
-
settings: settingsStubs,
|
|
318
|
-
shopListing: shopListingStubs,
|
|
319
|
-
shopOrder: shopOrderStubs,
|
|
320
|
-
variable: variableStubs,
|
|
321
|
-
};
|
|
322
|
-
return {
|
|
323
|
-
asClient: buildClientProxy(stubs),
|
|
324
|
-
stubs,
|
|
325
|
-
variables,
|
|
326
|
-
currency,
|
|
327
|
-
settings,
|
|
328
|
-
installations,
|
|
329
|
-
messages,
|
|
330
|
-
pmsTo(gameId) {
|
|
331
|
-
return messages.filter((message) => message.recipientGameId === gameId).map((message) => message.message);
|
|
332
|
-
},
|
|
333
|
-
};
|
|
334
|
-
}
|
|
335
|
-
//# sourceMappingURL=fakeClient.js.map
|
package/dist/fakeClient.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fakeClient.js","sourceRoot":"","sources":["../src/fakeClient.ts"],"names":[],"mappings":"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"}
|
package/dist/fixtureQuery.d.ts
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import type { ModuleInstallationOutputDTO, ModuleOutputDTO, CommandOutputDTO, PlayerOnGameserverOutputWithRolesDTO, PlayerOutputWithRolesDTO } from '@takaro/apiclient';
|
|
2
|
-
type ColumnAccessor<T> = (row: T) => unknown;
|
|
3
|
-
type FilterMatchers<T> = Record<string, ColumnAccessor<T>>;
|
|
4
|
-
/** The query fields `QueryBuilder` reads. Every one of them has to be honoured or refused. */
|
|
5
|
-
interface FakeQuery {
|
|
6
|
-
filters?: object;
|
|
7
|
-
search?: object;
|
|
8
|
-
greaterThan?: object;
|
|
9
|
-
lessThan?: object;
|
|
10
|
-
extend?: string[];
|
|
11
|
-
sortBy?: string;
|
|
12
|
-
sortDirection?: string;
|
|
13
|
-
limit?: number;
|
|
14
|
-
page?: number;
|
|
15
|
-
}
|
|
16
|
-
export declare function runQuery<T>(method: string, rows: T[], query: FakeQuery | undefined, matchers: FilterMatchers<T>): {
|
|
17
|
-
results: T[];
|
|
18
|
-
total: number;
|
|
19
|
-
page: number;
|
|
20
|
-
limit: number;
|
|
21
|
-
};
|
|
22
|
-
export declare const PLAYER_FILTERS: FilterMatchers<PlayerOutputWithRolesDTO>;
|
|
23
|
-
export declare const POG_FILTERS: FilterMatchers<PlayerOnGameserverOutputWithRolesDTO>;
|
|
24
|
-
export declare const INSTALLATION_FILTERS: FilterMatchers<ModuleInstallationOutputDTO>;
|
|
25
|
-
export declare const MODULE_FILTERS: FilterMatchers<ModuleOutputDTO>;
|
|
26
|
-
/** A command plus the installation it came from — `moduleId` is not a column on the command. */
|
|
27
|
-
export interface CommandRow {
|
|
28
|
-
command: CommandOutputDTO;
|
|
29
|
-
moduleId: string;
|
|
30
|
-
}
|
|
31
|
-
export declare const COMMAND_FILTERS: FilterMatchers<CommandRow>;
|
|
32
|
-
export {};
|
|
33
|
-
//# sourceMappingURL=fixtureQuery.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fixtureQuery.d.ts","sourceRoot":"","sources":["../src/fixtureQuery.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,2BAA2B,EAC3B,eAAe,EACf,gBAAgB,EAChB,oCAAoC,EACpC,wBAAwB,EACzB,MAAM,mBAAmB,CAAC;AAK3B,KAAK,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC;AAC7C,KAAK,cAAc,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;AAE3D,8FAA8F;AAC9F,UAAU,SAAS;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AA8DD,wBAAgB,QAAQ,CAAC,CAAC,EACxB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,CAAC,EAAE,EACT,KAAK,EAAE,SAAS,GAAG,SAAS,EAC5B,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,GAC1B;IAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAgC9D;AAED,eAAO,MAAM,cAAc,EAAE,cAAc,CAAC,wBAAwB,CAQnE,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,cAAc,CAAC,oCAAoC,CAO5E,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,cAAc,CAAC,2BAA2B,CAK5E,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,cAAc,CAAC,eAAe,CAG1D,CAAC;AAEF,gGAAgG;AAChG,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,eAAe,EAAE,cAAc,CAAC,UAAU,CAMtD,CAAC"}
|
package/dist/fixtureQuery.js
DELETED
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
import { compareForSort, nonArrayFilter, unimplementedKey, UnsupportedQueryError } from './query.js';
|
|
2
|
-
function matchesValue(actual, wanted) {
|
|
3
|
-
return Array.isArray(actual) ? actual.includes(wanted) : actual === wanted;
|
|
4
|
-
}
|
|
5
|
-
function isNullColumn(actual) {
|
|
6
|
-
return Array.isArray(actual) ? actual.length === 0 : actual === null || actual === undefined;
|
|
7
|
-
}
|
|
8
|
-
// AND across filter keys, OR within one key's array, matching `QueryBuilder`. A key with only
|
|
9
|
-
// null/undefined values matches nothing, since `where in (null)` matches nothing in Postgres either.
|
|
10
|
-
function applyFilters(method, rows, filters, matchers) {
|
|
11
|
-
let matched = rows;
|
|
12
|
-
for (const [key, value] of Object.entries(filters ?? {})) {
|
|
13
|
-
if (value === null || value === undefined) {
|
|
14
|
-
continue;
|
|
15
|
-
}
|
|
16
|
-
const column = matchers[key];
|
|
17
|
-
// oxlint-disable-next-line typescript/no-unnecessary-condition -- noUncheckedIndexedAccess is off (GH #3554); `key` is a dynamic filter key that may not be in matchers
|
|
18
|
-
if (!column) {
|
|
19
|
-
throw new UnsupportedQueryError(method, unimplementedKey('filter', key, Object.keys(matchers)));
|
|
20
|
-
}
|
|
21
|
-
// A bare boolean is an equality test, the one non-array value `QueryBuilder` honours.
|
|
22
|
-
if (typeof value === 'boolean') {
|
|
23
|
-
matched = matched.filter((row) => matchesValue(column(row), value));
|
|
24
|
-
continue;
|
|
25
|
-
}
|
|
26
|
-
if (!Array.isArray(value)) {
|
|
27
|
-
throw new UnsupportedQueryError(method, nonArrayFilter(key, value));
|
|
28
|
-
}
|
|
29
|
-
if (value.length === 0) {
|
|
30
|
-
continue;
|
|
31
|
-
}
|
|
32
|
-
// The literal string 'null' is `whereNull`, not an equality test — the only way to ask for a
|
|
33
|
-
// row whose scope column is unset. The variable store models this too; the two must agree.
|
|
34
|
-
if (value.includes('null')) {
|
|
35
|
-
matched = matched.filter((row) => isNullColumn(column(row)));
|
|
36
|
-
continue;
|
|
37
|
-
}
|
|
38
|
-
const wanted = value.filter((candidate) => candidate !== null && candidate !== undefined);
|
|
39
|
-
matched = matched.filter((row) => wanted.some((candidate) => matchesValue(column(row), candidate)));
|
|
40
|
-
}
|
|
41
|
-
return matched;
|
|
42
|
-
}
|
|
43
|
-
function rejectUnsupportedSearch(method, search) {
|
|
44
|
-
for (const [key, values] of Object.entries(search ?? {})) {
|
|
45
|
-
if (values === null || values === undefined) {
|
|
46
|
-
continue;
|
|
47
|
-
}
|
|
48
|
-
if (Array.isArray(values) && values.length === 0) {
|
|
49
|
-
continue;
|
|
50
|
-
}
|
|
51
|
-
throw new UnsupportedQueryError(method, unimplementedKey('search', key, []));
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
// Filter, sort and paginate one fixture collection the way `QueryBuilder` would. `greaterThan`,
|
|
55
|
-
// `lessThan` and `extend` throw rather than silently drop, so ordering bugs can't hide behind fixture order.
|
|
56
|
-
export function runQuery(method, rows, query, matchers) {
|
|
57
|
-
rejectUnsupportedSearch(method, query?.search);
|
|
58
|
-
for (const range of ['greaterThan', 'lessThan']) {
|
|
59
|
-
for (const [key, value] of Object.entries(query?.[range] ?? {})) {
|
|
60
|
-
if (value === null || value === undefined) {
|
|
61
|
-
continue;
|
|
62
|
-
}
|
|
63
|
-
throw new UnsupportedQueryError(method, unimplementedKey(`${range} range`, key, []));
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
const [relation] = query?.extend ?? [];
|
|
67
|
-
if (relation) {
|
|
68
|
-
throw new UnsupportedQueryError(method, unimplementedKey('graph extension', relation, []));
|
|
69
|
-
}
|
|
70
|
-
const matched = applyFilters(method, rows, query?.filters, matchers);
|
|
71
|
-
// `QueryBuilder` defaults sorting to id ascending, pagination to page 0/limit 100.
|
|
72
|
-
const sortBy = query?.sortBy ?? 'id';
|
|
73
|
-
const column = matchers[sortBy] ?? ((row) => row[sortBy]);
|
|
74
|
-
// Probed against the unfiltered rows, so an empty filtered result still gets a quiet empty page
|
|
75
|
-
// instead of a false "cannot sort by this column" refusal.
|
|
76
|
-
// oxlint-disable-next-line typescript/no-unnecessary-condition -- noUncheckedIndexedAccess is off (GH #3554); `sortBy` is a dynamic query key that may not be in matchers
|
|
77
|
-
if (!matchers[sortBy] && rows.length > 0 && !rows.some((row) => sortBy in row)) {
|
|
78
|
-
throw new UnsupportedQueryError(method, unimplementedKey('sortBy', sortBy, Object.keys(matchers)));
|
|
79
|
-
}
|
|
80
|
-
const direction = query?.sortDirection === 'desc' ? -1 : 1;
|
|
81
|
-
const sorted = [...matched].sort((left, right) => compareForSort(column(left), column(right), direction));
|
|
82
|
-
const limit = query?.limit ?? 100;
|
|
83
|
-
const page = query?.page ?? 0;
|
|
84
|
-
return { results: sorted.slice(page * limit, page * limit + limit), total: sorted.length, page, limit };
|
|
85
|
-
}
|
|
86
|
-
export const PLAYER_FILTERS = {
|
|
87
|
-
id: (player) => player.id,
|
|
88
|
-
name: (player) => player.name,
|
|
89
|
-
steamId: (player) => player.steamId,
|
|
90
|
-
epicOnlineServicesId: (player) => player.epicOnlineServicesId,
|
|
91
|
-
xboxLiveId: (player) => player.xboxLiveId,
|
|
92
|
-
platformId: (player) => player.platformId,
|
|
93
|
-
roleId: (player) => player.roleAssignments.map((assignment) => assignment.roleId),
|
|
94
|
-
};
|
|
95
|
-
export const POG_FILTERS = {
|
|
96
|
-
id: (pog) => pog.id,
|
|
97
|
-
playerId: (pog) => pog.playerId,
|
|
98
|
-
gameServerId: (pog) => pog.gameServerId,
|
|
99
|
-
gameId: (pog) => pog.gameId,
|
|
100
|
-
online: (pog) => pog.online,
|
|
101
|
-
currency: (pog) => pog.currency,
|
|
102
|
-
};
|
|
103
|
-
export const INSTALLATION_FILTERS = {
|
|
104
|
-
id: (installation) => installation.id,
|
|
105
|
-
gameserverId: (installation) => installation.gameserverId,
|
|
106
|
-
moduleId: (installation) => installation.moduleId,
|
|
107
|
-
versionId: (installation) => installation.versionId,
|
|
108
|
-
};
|
|
109
|
-
export const MODULE_FILTERS = {
|
|
110
|
-
id: (mod) => mod.id,
|
|
111
|
-
name: (mod) => mod.name,
|
|
112
|
-
};
|
|
113
|
-
export const COMMAND_FILTERS = {
|
|
114
|
-
id: (row) => row.command.id,
|
|
115
|
-
name: (row) => row.command.name,
|
|
116
|
-
trigger: (row) => row.command.trigger,
|
|
117
|
-
versionId: (row) => row.command.versionId,
|
|
118
|
-
moduleId: (row) => row.moduleId,
|
|
119
|
-
};
|
|
120
|
-
//# sourceMappingURL=fixtureQuery.js.map
|
package/dist/fixtureQuery.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fixtureQuery.js","sourceRoot":"","sources":["../src/fixtureQuery.ts"],"names":[],"mappings":"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"}
|
package/dist/fixtures.d.ts
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import type { PlayerOnGameserverOutputWithRolesDTO, PlayerOutputWithRolesDTO, UserOutputWithRolesDTO } from '@takaro/apiclient';
|
|
2
|
-
export interface PlayerPermission {
|
|
3
|
-
permission: string;
|
|
4
|
-
count?: number;
|
|
5
|
-
/** The name of the module whose permission this is; defaults to the module under test (GH #4686). */
|
|
6
|
-
module?: string;
|
|
7
|
-
}
|
|
8
|
-
/** Maps a module name (undefined: the module under test) to the installed Module a grant belongs to. */
|
|
9
|
-
export type ModuleResolver = (moduleName: string | undefined) => {
|
|
10
|
-
id: string;
|
|
11
|
-
name: string;
|
|
12
|
-
};
|
|
13
|
-
export type PermissionFixture = 'ROOT' | PlayerPermission[];
|
|
14
|
-
export interface PlatformIds {
|
|
15
|
-
steamId?: string;
|
|
16
|
-
epicOnlineServicesId?: string;
|
|
17
|
-
xboxLiveId?: string;
|
|
18
|
-
platformId?: string;
|
|
19
|
-
}
|
|
20
|
-
export interface PlayerFixtureOptions extends PlatformIds {
|
|
21
|
-
gameServerId: string;
|
|
22
|
-
playerId?: string;
|
|
23
|
-
gameId?: string;
|
|
24
|
-
name?: string;
|
|
25
|
-
permissions?: PermissionFixture;
|
|
26
|
-
currency?: number;
|
|
27
|
-
position?: {
|
|
28
|
-
x: number;
|
|
29
|
-
y: number;
|
|
30
|
-
z: number;
|
|
31
|
-
dimension?: string;
|
|
32
|
-
};
|
|
33
|
-
ping?: number;
|
|
34
|
-
ip?: string;
|
|
35
|
-
online?: boolean;
|
|
36
|
-
}
|
|
37
|
-
export interface PlayerFixture {
|
|
38
|
-
player: PlayerOutputWithRolesDTO;
|
|
39
|
-
pog: PlayerOnGameserverOutputWithRolesDTO;
|
|
40
|
-
}
|
|
41
|
-
/** @internal Exported for tests only. */
|
|
42
|
-
export declare function createPlayerFixture(options: PlayerFixtureOptions, resolveModule?: ModuleResolver): PlayerFixture;
|
|
43
|
-
/** The parts of a linked Takaro user a test chooses; the rest is filled in. */
|
|
44
|
-
export interface UserFixtureOptions {
|
|
45
|
-
userId?: string;
|
|
46
|
-
}
|
|
47
|
-
/** @internal Exported for tests only. */
|
|
48
|
-
export declare function createUserFixture(player: PlayerOutputWithRolesDTO, options?: UserFixtureOptions): UserOutputWithRolesDTO;
|
|
49
|
-
//# sourceMappingURL=fixtures.d.ts.map
|
package/dist/fixtures.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../src/fixtures.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oCAAoC,EACpC,wBAAwB,EAGxB,sBAAsB,EACvB,MAAM,mBAAmB,CAAC;AAM3B,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qGAAqG;IACrG,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wGAAwG;AACxG,MAAM,MAAM,cAAc,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,KAAK;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9F,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,gBAAgB,EAAE,CAAC;AAI5D,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,oBAAqB,SAAQ,WAAW;IACvD,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,wBAAwB,CAAC;IACjC,GAAG,EAAE,oCAAoC,CAAC;CAC3C;AAED,yCAAyC;AACzC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,EAAE,aAAa,CAAC,EAAE,cAAc,GAAG,aAAa,CA8ChH;AAED,+EAA+E;AAC/E,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID,yCAAyC;AACzC,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,wBAAwB,EAChC,OAAO,GAAE,kBAAuB,GAC/B,sBAAsB,CAqBxB"}
|