71 lines
2.3 KiB
TypeScript
71 lines
2.3 KiB
TypeScript
import test from "ava";
|
|
|
|
import {
|
|
Language,
|
|
isScannedLanguage,
|
|
isTracedLanguage,
|
|
parseLanguage,
|
|
} from "./languages";
|
|
import { getRunnerLogger } from "./logging";
|
|
import { setupTests } from "./testing-utils";
|
|
|
|
setupTests(test);
|
|
|
|
test("parseLanguage", async (t) => {
|
|
// Exact matches
|
|
t.deepEqual(parseLanguage("csharp"), Language.csharp);
|
|
t.deepEqual(parseLanguage("cpp"), Language.cpp);
|
|
t.deepEqual(parseLanguage("go"), Language.go);
|
|
t.deepEqual(parseLanguage("java"), Language.java);
|
|
t.deepEqual(parseLanguage("javascript"), Language.javascript);
|
|
t.deepEqual(parseLanguage("python"), Language.python);
|
|
|
|
// Aliases
|
|
t.deepEqual(parseLanguage("c"), Language.cpp);
|
|
t.deepEqual(parseLanguage("c++"), Language.cpp);
|
|
t.deepEqual(parseLanguage("c#"), Language.csharp);
|
|
t.deepEqual(parseLanguage("typescript"), Language.javascript);
|
|
|
|
// Not matches
|
|
t.deepEqual(parseLanguage("foo"), undefined);
|
|
t.deepEqual(parseLanguage(" "), undefined);
|
|
t.deepEqual(parseLanguage(""), undefined);
|
|
});
|
|
|
|
for (const isReconciliationOn of [false, true]) {
|
|
test(`isTracedLanguage (go reconciliation ${
|
|
isReconciliationOn ? "enabled" : "disabled"
|
|
})`, async (t) => {
|
|
const logger = getRunnerLogger(true);
|
|
|
|
t.true(isTracedLanguage(Language.cpp, isReconciliationOn, logger));
|
|
t.true(isTracedLanguage(Language.java, isReconciliationOn, logger));
|
|
t.true(isTracedLanguage(Language.csharp, isReconciliationOn, logger));
|
|
|
|
t.is(
|
|
isTracedLanguage(Language.go, isReconciliationOn, logger),
|
|
isReconciliationOn
|
|
);
|
|
|
|
t.false(isTracedLanguage(Language.javascript, isReconciliationOn, logger));
|
|
t.false(isTracedLanguage(Language.python, isReconciliationOn, logger));
|
|
});
|
|
|
|
test(`isScannedLanguage (go reconciliation ${
|
|
isReconciliationOn ? "enabled" : "disabled"
|
|
}`, async (t) => {
|
|
const logger = getRunnerLogger(true);
|
|
|
|
t.false(isScannedLanguage(Language.cpp, isReconciliationOn, logger));
|
|
t.false(isScannedLanguage(Language.java, isReconciliationOn, logger));
|
|
t.false(isScannedLanguage(Language.csharp, isReconciliationOn, logger));
|
|
|
|
t.is(
|
|
isScannedLanguage(Language.go, isReconciliationOn, logger),
|
|
!isReconciliationOn
|
|
);
|
|
|
|
t.true(isScannedLanguage(Language.javascript, isReconciliationOn, logger));
|
|
t.true(isScannedLanguage(Language.python, isReconciliationOn, logger));
|
|
});
|
|
}
|