Files
react-native-devtools-frontend/node_modules/tsconfig-paths/test/config-loader-tests.ts
T
Tim van der Lippe 16aca394c5 Update ESLint and related packages
Major update breaking changes:
- ESLint 7.0.0 (https://eslint.org/docs/user-guide/migrating-to-7.0.0) now includes
.eslint.rc.js in its list, which is fine for us. Other changes are not applicable
for us.
- eslint-plugin-mocha (https://github.com/lo1tuma/eslint-plugin-mocha/blob/master/CHANGELOG.md#700-may-13-2020)
drops support for ESLint <7, but this CL updates to 7+. Other changes are
not applicable for us.

DISABLE_THIRD_PARTY_CHECK=Updating ESLint
R=petermarshall@chromium.org

Change-Id: I7760e084ef87f73a92f9ea4e075fb4c065047f5a
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2534873
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
2020-11-13 12:28:15 +00:00

91 lines
2.8 KiB
TypeScript

import { assert } from "chai";
import {
configLoader,
loadConfig,
ConfigLoaderFailResult,
ConfigLoaderSuccessResult
} from "../src/config-loader";
import { join } from "path";
describe("config-loader", (): void => {
it("should use explicitParams when set", () => {
const result = configLoader({
explicitParams: {
baseUrl: "/foo/bar",
paths: {
asd: ["asd"]
}
},
cwd: "/baz"
});
const successResult = result as ConfigLoaderSuccessResult;
assert.equal(successResult.resultType, "success");
assert.equal(successResult.absoluteBaseUrl, "/foo/bar");
assert.equal(successResult.paths["asd"][0], "asd");
});
it("should use explicitParams when set and add cwd when path is relative", () => {
const result = configLoader({
explicitParams: {
baseUrl: "bar/",
paths: {
asd: ["asd"]
}
},
cwd: "/baz"
});
const successResult = result as ConfigLoaderSuccessResult;
assert.equal(successResult.resultType, "success");
assert.equal(successResult.absoluteBaseUrl, join("/baz", "bar/"));
});
it("should fallback to tsConfigLoader when explicitParams is not set", () => {
const result = configLoader({
explicitParams: undefined,
cwd: "/baz",
// tslint:disable-next-line:no-any
tsConfigLoader: (_: any) => ({
tsConfigPath: "/baz/tsconfig.json",
baseUrl: "./src",
paths: {}
})
});
const successResult = result as ConfigLoaderSuccessResult;
assert.equal(successResult.resultType, "success");
assert.equal(successResult.absoluteBaseUrl, join("/baz", "src"));
});
it("should show an error message when baseUrl is missing", () => {
const result = configLoader({
explicitParams: undefined,
cwd: "/baz",
// tslint:disable-next-line:no-any
tsConfigLoader: (_: any) => ({
tsConfigPath: "/baz/tsconfig.json",
baseUrl: undefined,
paths: {}
})
});
const failResult = result as ConfigLoaderFailResult;
assert.equal(failResult.resultType, "failed");
assert.isTrue(failResult.message.indexOf("baseUrl") > -1);
});
it("should presume cwd to be a tsconfig file when loadConfig is called with absolute path to tsconfig.json", () => {
// using tsconfig-named.json to ensure that future changes to fix
// https://github.com/dividab/tsconfig-paths/issues/31
// do not pass this test case just because of a directory walk looking
// for tsconfig.json
const configFile = join(__dirname, "tsconfig-named.json");
const result = loadConfig(configFile);
const successResult = result as ConfigLoaderSuccessResult;
assert.equal(successResult.resultType, "success");
assert.equal(successResult.configFileAbsolutePath, configFile);
});
});