spiegel-keyman/developer/js/tests/test-error-logger.ts

38 lines
No EOL
1.2 KiB
TypeScript

import { MAX_MESSAGES, KeymanCompilerError, log } from "../dist/errors"
import { LogHoarder } from "./helpers"
import { assert } from "chai"
describe('error logger', function () {
beforeEach(function () {
this.logHoarder = (new LogHoarder).install()
})
afterEach(function () {
this.logHoarder.uninstall();
delete this.logHoarder;
})
it('should stop logging messages **after** a maximum', function () {
for (let i = 0; i < MAX_MESSAGES; i++) {
log(KeymanCompilerError.CWARN_DuplicateWordInSameFile, "fake error");
}
// We've logged *just enough messages. This error should not be found:
assert.isFalse(this.logHoarder.hasSeenCode(
KeymanCompilerError.CWARN_TooManyErrorsOrWarnings
));
// Log just one too many:
log(KeymanCompilerError.CWARN_DuplicateWordInSameFile, "fake error");
assert.isTrue(this.logHoarder.hasSeenCode(
KeymanCompilerError.CWARN_TooManyErrorsOrWarnings
));
// Log a DIFFERENT error -- it should not appear in the log
log(KeymanCompilerError.CWARN_MixedNormalizationForms, "fake error");
assert.isFalse(this.logHoarder.hasSeenCode(
KeymanCompilerError.CWARN_MixedNormalizationForms
));
})
})