travian/tests/Queue/StatisticsTest.js.ts

36 lines
1.2 KiB
TypeScript

import { it, describe } from 'mocha';
import { expect } from 'chai';
import { ActionStatistics, Statistics, StatisticsStorageInterface } from '../../src/Statistics';
class MemoryStatisticsStorage implements StatisticsStorageInterface {
stat: ActionStatistics = {};
getActionStatistics(): ActionStatistics {
return this.stat;
}
setActionStatistics(statistics: ActionStatistics): void {
this.stat = statistics;
}
}
describe('Statistics', function() {
it('Can save statistics item', function() {
const storage = new MemoryStatisticsStorage();
const statistics = new Statistics(storage);
statistics.incrementAction(1588408294);
expect(Object.keys(statistics.getActionStatistics())).to.has.lengthOf(1);
});
it('Can trim statistics', function() {
const storage = new MemoryStatisticsStorage();
const statistics = new Statistics(storage);
const baseTime = 1588408294;
for (let i = 0; i < 120; ++i) {
statistics.incrementAction(baseTime + 3600 * i);
}
expect(Object.keys(statistics.getActionStatistics())).to.has.lengthOf(Statistics.keepRecords);
});
});