reiso
Version:
78 lines • 6.68 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const Config_1 = require("../../Modules/Config");
const Worker_1 = require("../../Modules/Worker");
describe("Module/Worker", () => {
beforeEach(() => {
Worker_1.clearModel();
Config_1.setConfig({
default: {
"redisWorker": {
"Main": {
"port": 6379,
"host": "redis",
"password": ""
}
}
}
});
});
it("job", async () => {
let prevNotBinded = false;
let prevBinded = false;
let counter = 0;
Worker_1.RegisterWorker({ name: 'test', cronTime: "* * * * * * *" }, async (prev) => {
if (prev)
prevBinded = true;
else
prevNotBinded = true;
counter++;
await new Promise(r => setTimeout(r, 2000));
return true;
});
const commander = new Worker_1.CronManager();
await new Promise(r => commander.init(r));
await new Promise(r => setTimeout(r, 4000));
commander.destroy();
expect(commander.getNames().join(',')).toBe('test');
expect(prevNotBinded).toBe(true);
expect(prevBinded).toBe(true);
expect(counter).toBeGreaterThan(0);
}, 10000);
it("job lifecycle", async () => {
let counter = 0;
let counterStop = 0;
let counterAfter = 0;
let startCounter = 0;
let stopCounter = 0;
// TODO: test all events
Worker_1.RegisterWorkerEvent('start', name => {
expect(name).toBe('test');
startCounter++;
});
Worker_1.RegisterWorkerEvent('stop', name => {
expect(name).toBe('test');
stopCounter++;
});
Worker_1.RegisterWorker({ name: 'test', cronTime: "* * * * * * *" }, async (prev) => {
counter++;
return true;
});
const commander = new Worker_1.CronManager();
await new Promise(r => commander.init(r));
await new Promise(r => setTimeout(r, 1500));
commander.stop('test');
counterAfter = counter + 0;
await new Promise(r => setTimeout(r, 1500));
counterStop = counter + 0;
commander.start('test');
await new Promise(r => setTimeout(r, 1500));
commander.destroy();
expect(counter).toBeGreaterThan(0);
expect(counter).toBeGreaterThan(counterAfter);
expect(counterAfter).toBe(counterStop);
expect(startCounter).toBe(2);
expect(stopCounter).toBe(2);
}, 10000);
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV29ya2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL1Rlc3QvU2VydmVyL1dvcmtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLGlEQUFpRDtBQUNqRCxpREFBb0c7QUFFcEcsUUFBUSxDQUFDLGVBQWUsRUFBRSxHQUFHLEVBQUU7SUFFM0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUNaLG1CQUFVLEVBQUUsQ0FBQztRQUViLGtCQUFTLENBQUM7WUFDTixPQUFPLEVBQUU7Z0JBQ0wsYUFBYSxFQUFFO29CQUNYLE1BQU0sRUFBRTt3QkFDSixNQUFNLEVBQUUsSUFBSTt3QkFDWixNQUFNLEVBQUUsT0FBTzt3QkFDZixVQUFVLEVBQUUsRUFBRTtxQkFDakI7aUJBQ0o7YUFDSjtTQUNKLENBQUMsQ0FBQztJQUNQLENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLElBQUksRUFBRTtRQUNqQixJQUFJLGFBQWEsR0FBWSxLQUFLLENBQUM7UUFDbkMsSUFBSSxVQUFVLEdBQVksS0FBSyxDQUFDO1FBQ2hDLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQztRQUVoQix1QkFBYyxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLEVBQUUsS0FBSyxFQUFDLElBQUksRUFBQyxFQUFFO1lBQ3JFLElBQUksSUFBSTtnQkFBRSxVQUFVLEdBQUcsSUFBSSxDQUFDOztnQkFDdkIsYUFBYSxHQUFHLElBQUksQ0FBQztZQUMxQixPQUFPLEVBQUUsQ0FBQztZQUNWLE1BQU0sSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDNUMsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLFNBQVMsR0FBRyxJQUFJLG9CQUFXLEVBQUUsQ0FBQztRQUNwQyxN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