kt-template-online-api/test/qqbot/plugins/bangdream/application/bangdream-operation-catalog-keys.spec.ts

130 lines
2.9 KiB
TypeScript

import { getBangDreamOperationsByHandlerName } from '@/modules/qqbot/plugins/bangdream/src/operations';
describe('BangDream operation catalog keys', () => {
it('declares the catalog keys required by each operation', () => {
const operations = getBangDreamOperationsByHandlerName();
expectCatalogKeys(operations.get('searchSong')?.catalogKeys, [
'songs',
'meta',
'singer',
'bands',
'characters',
'events',
]);
expectCatalogKeys(operations.get('getSongChart')?.catalogKeys, [
'songs',
'meta',
'singer',
'bands',
'characters',
]);
expectCatalogKeys(operations.get('randomSong')?.catalogKeys, [
'songs',
'meta',
'singer',
'bands',
'characters',
]);
expectCatalogKeys(operations.get('getSongMeta')?.catalogKeys, [
'songs',
'meta',
'singer',
'bands',
'characters',
]);
expectCatalogKeys(operations.get('searchCard')?.catalogKeys, [
'cards',
'skills',
'characters',
'singer',
'bands',
'events',
'gacha',
'costumes',
]);
expectCatalogKeys(operations.get('getCardIllustration')?.catalogKeys, [
'cards',
'skills',
'characters',
]);
expectCatalogKeys(operations.get('searchCharacter')?.catalogKeys, [
'characters',
'singer',
'bands',
]);
expectCatalogKeys(operations.get('searchEvent')?.catalogKeys, [
'events',
'characters',
'singer',
'bands',
'cards',
'skills',
'gacha',
'songs',
'meta',
'degrees',
'deco',
]);
expectCatalogKeys(operations.get('getEventStage')?.catalogKeys, [
'events',
'characters',
'songs',
'meta',
]);
expectCatalogKeys(operations.get('searchPlayer')?.catalogKeys, [
'cards',
'skills',
'characters',
'singer',
'bands',
'degrees',
'areaItems',
]);
expectCatalogKeys(operations.get('searchGacha')?.catalogKeys, [
'gacha',
'cards',
'skills',
'characters',
'singer',
'bands',
'events',
'items',
]);
expectCatalogKeys(operations.get('simulateGacha')?.catalogKeys, [
'gacha',
'cards',
'skills',
'characters',
'singer',
'bands',
]);
expectCatalogKeys(operations.get('getCutoffDetail')?.catalogKeys, [
'events',
'characters',
'rates',
'cards',
'skills',
'singer',
'bands',
'degrees',
]);
expectCatalogKeys(operations.get('getCutoffAll')?.catalogKeys, [
'events',
'characters',
'rates',
]);
expectCatalogKeys(operations.get('getCutoffRecent')?.catalogKeys, [
'events',
'characters',
'rates',
]);
expect(operations.size).toBe(15);
});
});
function expectCatalogKeys(actual: readonly string[] | undefined, keys: string[]) {
expect(actual).toEqual(keys);
}