mirror of
https://github.com/github/codeql-action.git
synced 2026-10-03 17:41:28 +00:00
Fix test failures on Windows related to path separators
This commit is contained in:
8
lib/config-utils.js
generated
8
lib/config-utils.js
generated
@@ -728,7 +728,13 @@ function validatePacksSpecification(packStr, configFile) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (packPath &&
|
if (packPath &&
|
||||||
(path.isAbsolute(packPath) || path.normalize(packPath) !== packPath)) {
|
(path.isAbsolute(packPath) ||
|
||||||
|
// Permit using "/" instead of "\" on Windows
|
||||||
|
// Use `x.split(y).join(z)` as a polyfill for `x.replaceAll(y, z)` since
|
||||||
|
// if we used a regex we'd need to escape the path separator on Windows
|
||||||
|
// which seems more awkward.
|
||||||
|
path.normalize(packPath).split(path.sep).join("/") !==
|
||||||
|
packPath.split(path.sep).join("/"))) {
|
||||||
throw new Error(getPacksStrInvalid(packStr, configFile));
|
throw new Error(getPacksStrInvalid(packStr, configFile));
|
||||||
}
|
}
|
||||||
if (!packPath && pathStart) {
|
if (!packPath && pathStart) {
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
40
lib/config-utils.test.js
generated
40
lib/config-utils.test.js
generated
@@ -308,12 +308,12 @@ function queriesToResolvedQueryForm(queries) {
|
|||||||
// and once for `./foo` from the config file.
|
// and once for `./foo` from the config file.
|
||||||
t.deepEqual(resolveQueriesArgs.length, 2);
|
t.deepEqual(resolveQueriesArgs.length, 2);
|
||||||
t.deepEqual(resolveQueriesArgs[1].queries.length, 1);
|
t.deepEqual(resolveQueriesArgs[1].queries.length, 1);
|
||||||
t.regex(resolveQueriesArgs[1].queries[0], /.*\/foo$/);
|
t.true(resolveQueriesArgs[1].queries[0].endsWith(`${path.sep}foo`));
|
||||||
// Now check that the end result contains the default queries and the query from config
|
// Now check that the end result contains the default queries and the query from config
|
||||||
t.deepEqual(config.queries["javascript"].builtin.length, 1);
|
t.deepEqual(config.queries["javascript"].builtin.length, 1);
|
||||||
t.deepEqual(config.queries["javascript"].custom.length, 1);
|
t.deepEqual(config.queries["javascript"].custom.length, 1);
|
||||||
t.regex(config.queries["javascript"].builtin[0], /javascript-code-scanning.qls$/);
|
t.true(config.queries["javascript"].builtin[0].endsWith("javascript-code-scanning.qls"));
|
||||||
t.regex(config.queries["javascript"].custom[0].queries[0], /.*\/foo$/);
|
t.true(config.queries["javascript"].custom[0].queries[0].endsWith(`${path.sep}foo`));
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
(0, ava_1.default)("Queries from config file can be overridden in workflow file", async (t) => {
|
(0, ava_1.default)("Queries from config file can be overridden in workflow file", async (t) => {
|
||||||
@@ -341,12 +341,12 @@ function queriesToResolvedQueryForm(queries) {
|
|||||||
// but won't be called for './foo' from the config file.
|
// but won't be called for './foo' from the config file.
|
||||||
t.deepEqual(resolveQueriesArgs.length, 2);
|
t.deepEqual(resolveQueriesArgs.length, 2);
|
||||||
t.deepEqual(resolveQueriesArgs[1].queries.length, 1);
|
t.deepEqual(resolveQueriesArgs[1].queries.length, 1);
|
||||||
t.regex(resolveQueriesArgs[1].queries[0], /.*\/override$/);
|
t.true(resolveQueriesArgs[1].queries[0].endsWith(`${path.sep}override`));
|
||||||
// Now check that the end result contains only the default queries and the override query
|
// Now check that the end result contains only the default queries and the override query
|
||||||
t.deepEqual(config.queries["javascript"].builtin.length, 1);
|
t.deepEqual(config.queries["javascript"].builtin.length, 1);
|
||||||
t.deepEqual(config.queries["javascript"].custom.length, 1);
|
t.deepEqual(config.queries["javascript"].custom.length, 1);
|
||||||
t.regex(config.queries["javascript"].builtin[0], /javascript-code-scanning.qls$/);
|
t.true(config.queries["javascript"].builtin[0].endsWith("javascript-code-scanning.qls"));
|
||||||
t.regex(config.queries["javascript"].custom[0].queries[0], /.*\/override$/);
|
t.true(config.queries["javascript"].custom[0].queries[0].endsWith(`${path.sep}override`));
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
(0, ava_1.default)("Queries in workflow file can be used in tandem with the 'disable default queries' option", async (t) => {
|
(0, ava_1.default)("Queries in workflow file can be used in tandem with the 'disable default queries' option", async (t) => {
|
||||||
@@ -373,11 +373,11 @@ function queriesToResolvedQueryForm(queries) {
|
|||||||
// but won't be called for the default one since that was disabled
|
// but won't be called for the default one since that was disabled
|
||||||
t.deepEqual(resolveQueriesArgs.length, 1);
|
t.deepEqual(resolveQueriesArgs.length, 1);
|
||||||
t.deepEqual(resolveQueriesArgs[0].queries.length, 1);
|
t.deepEqual(resolveQueriesArgs[0].queries.length, 1);
|
||||||
t.regex(resolveQueriesArgs[0].queries[0], /.*\/workflow-query$/);
|
t.true(resolveQueriesArgs[0].queries[0].endsWith(`${path.sep}workflow-query`));
|
||||||
// Now check that the end result contains only the workflow query, and not the default one
|
// Now check that the end result contains only the workflow query, and not the default one
|
||||||
t.deepEqual(config.queries["javascript"].builtin.length, 0);
|
t.deepEqual(config.queries["javascript"].builtin.length, 0);
|
||||||
t.deepEqual(config.queries["javascript"].custom.length, 1);
|
t.deepEqual(config.queries["javascript"].custom.length, 1);
|
||||||
t.regex(config.queries["javascript"].custom[0].queries[0], /.*\/workflow-query$/);
|
t.true(config.queries["javascript"].custom[0].queries[0].endsWith(`${path.sep}workflow-query`));
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
(0, ava_1.default)("Multiple queries can be specified in workflow file, no config file required", async (t) => {
|
(0, ava_1.default)("Multiple queries can be specified in workflow file, no config file required", async (t) => {
|
||||||
@@ -400,14 +400,14 @@ function queriesToResolvedQueryForm(queries) {
|
|||||||
t.deepEqual(resolveQueriesArgs.length, 3);
|
t.deepEqual(resolveQueriesArgs.length, 3);
|
||||||
t.deepEqual(resolveQueriesArgs[1].queries.length, 1);
|
t.deepEqual(resolveQueriesArgs[1].queries.length, 1);
|
||||||
t.deepEqual(resolveQueriesArgs[2].queries.length, 1);
|
t.deepEqual(resolveQueriesArgs[2].queries.length, 1);
|
||||||
t.regex(resolveQueriesArgs[1].queries[0], /.*\/override1$/);
|
t.true(resolveQueriesArgs[1].queries[0].endsWith(`${path.sep}override1`));
|
||||||
t.regex(resolveQueriesArgs[2].queries[0], /.*\/override2$/);
|
t.true(resolveQueriesArgs[2].queries[0].endsWith(`${path.sep}override2`));
|
||||||
// Now check that the end result contains both the queries from the workflow, as well as the defaults
|
// Now check that the end result contains both the queries from the workflow, as well as the defaults
|
||||||
t.deepEqual(config.queries["javascript"].builtin.length, 1);
|
t.deepEqual(config.queries["javascript"].builtin.length, 1);
|
||||||
t.deepEqual(config.queries["javascript"].custom.length, 2);
|
t.deepEqual(config.queries["javascript"].custom.length, 2);
|
||||||
t.regex(config.queries["javascript"].builtin[0], /javascript-code-scanning.qls$/);
|
t.true(config.queries["javascript"].builtin[0].endsWith("javascript-code-scanning.qls"));
|
||||||
t.regex(config.queries["javascript"].custom[0].queries[0], /.*\/override1$/);
|
t.true(config.queries["javascript"].custom[0].queries[0].endsWith(`${path.sep}override1`));
|
||||||
t.regex(config.queries["javascript"].custom[1].queries[0], /.*\/override2$/);
|
t.true(config.queries["javascript"].custom[1].queries[0].endsWith(`${path.sep}override2`));
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
(0, ava_1.default)("Queries in workflow file can be added to the set of queries without overriding config file", async (t) => {
|
(0, ava_1.default)("Queries in workflow file can be added to the set of queries without overriding config file", async (t) => {
|
||||||
@@ -439,18 +439,18 @@ function queriesToResolvedQueryForm(queries) {
|
|||||||
// and once for './foo' from the config file
|
// and once for './foo' from the config file
|
||||||
t.deepEqual(resolveQueriesArgs.length, 4);
|
t.deepEqual(resolveQueriesArgs.length, 4);
|
||||||
t.deepEqual(resolveQueriesArgs[1].queries.length, 1);
|
t.deepEqual(resolveQueriesArgs[1].queries.length, 1);
|
||||||
t.regex(resolveQueriesArgs[1].queries[0], /.*\/additional1$/);
|
t.true(resolveQueriesArgs[1].queries[0].endsWith(`${path.sep}additional1`));
|
||||||
t.deepEqual(resolveQueriesArgs[2].queries.length, 1);
|
t.deepEqual(resolveQueriesArgs[2].queries.length, 1);
|
||||||
t.regex(resolveQueriesArgs[2].queries[0], /.*\/additional2$/);
|
t.true(resolveQueriesArgs[2].queries[0].endsWith(`${path.sep}additional2`));
|
||||||
t.deepEqual(resolveQueriesArgs[3].queries.length, 1);
|
t.deepEqual(resolveQueriesArgs[3].queries.length, 1);
|
||||||
t.regex(resolveQueriesArgs[3].queries[0], /.*\/foo$/);
|
t.true(resolveQueriesArgs[3].queries[0].endsWith(`${path.sep}foo`));
|
||||||
// Now check that the end result contains all the queries
|
// Now check that the end result contains all the queries
|
||||||
t.deepEqual(config.queries["javascript"].builtin.length, 1);
|
t.deepEqual(config.queries["javascript"].builtin.length, 1);
|
||||||
t.deepEqual(config.queries["javascript"].custom.length, 3);
|
t.deepEqual(config.queries["javascript"].custom.length, 3);
|
||||||
t.regex(config.queries["javascript"].builtin[0], /javascript-code-scanning.qls$/);
|
t.true(config.queries["javascript"].builtin[0].endsWith("javascript-code-scanning.qls"));
|
||||||
t.regex(config.queries["javascript"].custom[0].queries[0], /.*\/additional1$/);
|
t.true(config.queries["javascript"].custom[0].queries[0].endsWith(`${path.sep}additional1`));
|
||||||
t.regex(config.queries["javascript"].custom[1].queries[0], /.*\/additional2$/);
|
t.true(config.queries["javascript"].custom[1].queries[0].endsWith(`${path.sep}additional2`));
|
||||||
t.regex(config.queries["javascript"].custom[2].queries[0], /.*\/foo$/);
|
t.true(config.queries["javascript"].custom[2].queries[0].endsWith(`${path.sep}foo`));
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
(0, ava_1.default)("Invalid queries in workflow file handled correctly", async (t) => {
|
(0, ava_1.default)("Invalid queries in workflow file handled correctly", async (t) => {
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
2
lib/fingerprints.test.js
generated
2
lib/fingerprints.test.js
generated
@@ -137,7 +137,7 @@ function testResolveUriToFile(uri, index, artifactsURIs) {
|
|||||||
// should generally always be the case so this is fine.
|
// should generally always be the case so this is fine.
|
||||||
const cwd = process.cwd();
|
const cwd = process.cwd();
|
||||||
const filepath = __filename;
|
const filepath = __filename;
|
||||||
t.true(filepath.startsWith(`${cwd}/`));
|
t.true(filepath.startsWith(cwd + path.sep));
|
||||||
const relativeFilepath = filepath.substring(cwd.length + 1);
|
const relativeFilepath = filepath.substring(cwd.length + 1);
|
||||||
// Absolute paths are unmodified
|
// Absolute paths are unmodified
|
||||||
t.is(testResolveUriToFile(filepath, undefined, []), filepath);
|
t.is(testResolveUriToFile(filepath, undefined, []), filepath);
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -519,16 +519,21 @@ test("Queries can be specified in config file", async (t) => {
|
|||||||
// and once for `./foo` from the config file.
|
// and once for `./foo` from the config file.
|
||||||
t.deepEqual(resolveQueriesArgs.length, 2);
|
t.deepEqual(resolveQueriesArgs.length, 2);
|
||||||
t.deepEqual(resolveQueriesArgs[1].queries.length, 1);
|
t.deepEqual(resolveQueriesArgs[1].queries.length, 1);
|
||||||
t.regex(resolveQueriesArgs[1].queries[0], /.*\/foo$/);
|
t.true(resolveQueriesArgs[1].queries[0].endsWith(`${path.sep}foo`));
|
||||||
|
|
||||||
// Now check that the end result contains the default queries and the query from config
|
// Now check that the end result contains the default queries and the query from config
|
||||||
t.deepEqual(config.queries["javascript"].builtin.length, 1);
|
t.deepEqual(config.queries["javascript"].builtin.length, 1);
|
||||||
t.deepEqual(config.queries["javascript"].custom.length, 1);
|
t.deepEqual(config.queries["javascript"].custom.length, 1);
|
||||||
t.regex(
|
t.true(
|
||||||
config.queries["javascript"].builtin[0],
|
config.queries["javascript"].builtin[0].endsWith(
|
||||||
/javascript-code-scanning.qls$/
|
"javascript-code-scanning.qls"
|
||||||
|
)
|
||||||
|
);
|
||||||
|
t.true(
|
||||||
|
config.queries["javascript"].custom[0].queries[0].endsWith(
|
||||||
|
`${path.sep}foo`
|
||||||
|
)
|
||||||
);
|
);
|
||||||
t.regex(config.queries["javascript"].custom[0].queries[0], /.*\/foo$/);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -587,16 +592,21 @@ test("Queries from config file can be overridden in workflow file", async (t) =>
|
|||||||
// but won't be called for './foo' from the config file.
|
// but won't be called for './foo' from the config file.
|
||||||
t.deepEqual(resolveQueriesArgs.length, 2);
|
t.deepEqual(resolveQueriesArgs.length, 2);
|
||||||
t.deepEqual(resolveQueriesArgs[1].queries.length, 1);
|
t.deepEqual(resolveQueriesArgs[1].queries.length, 1);
|
||||||
t.regex(resolveQueriesArgs[1].queries[0], /.*\/override$/);
|
t.true(resolveQueriesArgs[1].queries[0].endsWith(`${path.sep}override`));
|
||||||
|
|
||||||
// Now check that the end result contains only the default queries and the override query
|
// Now check that the end result contains only the default queries and the override query
|
||||||
t.deepEqual(config.queries["javascript"].builtin.length, 1);
|
t.deepEqual(config.queries["javascript"].builtin.length, 1);
|
||||||
t.deepEqual(config.queries["javascript"].custom.length, 1);
|
t.deepEqual(config.queries["javascript"].custom.length, 1);
|
||||||
t.regex(
|
t.true(
|
||||||
config.queries["javascript"].builtin[0],
|
config.queries["javascript"].builtin[0].endsWith(
|
||||||
/javascript-code-scanning.qls$/
|
"javascript-code-scanning.qls"
|
||||||
|
)
|
||||||
|
);
|
||||||
|
t.true(
|
||||||
|
config.queries["javascript"].custom[0].queries[0].endsWith(
|
||||||
|
`${path.sep}override`
|
||||||
|
)
|
||||||
);
|
);
|
||||||
t.regex(config.queries["javascript"].custom[0].queries[0], /.*\/override$/);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -653,14 +663,17 @@ test("Queries in workflow file can be used in tandem with the 'disable default q
|
|||||||
// but won't be called for the default one since that was disabled
|
// but won't be called for the default one since that was disabled
|
||||||
t.deepEqual(resolveQueriesArgs.length, 1);
|
t.deepEqual(resolveQueriesArgs.length, 1);
|
||||||
t.deepEqual(resolveQueriesArgs[0].queries.length, 1);
|
t.deepEqual(resolveQueriesArgs[0].queries.length, 1);
|
||||||
t.regex(resolveQueriesArgs[0].queries[0], /.*\/workflow-query$/);
|
t.true(
|
||||||
|
resolveQueriesArgs[0].queries[0].endsWith(`${path.sep}workflow-query`)
|
||||||
|
);
|
||||||
|
|
||||||
// Now check that the end result contains only the workflow query, and not the default one
|
// Now check that the end result contains only the workflow query, and not the default one
|
||||||
t.deepEqual(config.queries["javascript"].builtin.length, 0);
|
t.deepEqual(config.queries["javascript"].builtin.length, 0);
|
||||||
t.deepEqual(config.queries["javascript"].custom.length, 1);
|
t.deepEqual(config.queries["javascript"].custom.length, 1);
|
||||||
t.regex(
|
t.true(
|
||||||
config.queries["javascript"].custom[0].queries[0],
|
config.queries["javascript"].custom[0].queries[0].endsWith(
|
||||||
/.*\/workflow-query$/
|
`${path.sep}workflow-query`
|
||||||
|
)
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -713,23 +726,26 @@ test("Multiple queries can be specified in workflow file, no config file require
|
|||||||
t.deepEqual(resolveQueriesArgs.length, 3);
|
t.deepEqual(resolveQueriesArgs.length, 3);
|
||||||
t.deepEqual(resolveQueriesArgs[1].queries.length, 1);
|
t.deepEqual(resolveQueriesArgs[1].queries.length, 1);
|
||||||
t.deepEqual(resolveQueriesArgs[2].queries.length, 1);
|
t.deepEqual(resolveQueriesArgs[2].queries.length, 1);
|
||||||
t.regex(resolveQueriesArgs[1].queries[0], /.*\/override1$/);
|
t.true(resolveQueriesArgs[1].queries[0].endsWith(`${path.sep}override1`));
|
||||||
t.regex(resolveQueriesArgs[2].queries[0], /.*\/override2$/);
|
t.true(resolveQueriesArgs[2].queries[0].endsWith(`${path.sep}override2`));
|
||||||
|
|
||||||
// Now check that the end result contains both the queries from the workflow, as well as the defaults
|
// Now check that the end result contains both the queries from the workflow, as well as the defaults
|
||||||
t.deepEqual(config.queries["javascript"].builtin.length, 1);
|
t.deepEqual(config.queries["javascript"].builtin.length, 1);
|
||||||
t.deepEqual(config.queries["javascript"].custom.length, 2);
|
t.deepEqual(config.queries["javascript"].custom.length, 2);
|
||||||
t.regex(
|
t.true(
|
||||||
config.queries["javascript"].builtin[0],
|
config.queries["javascript"].builtin[0].endsWith(
|
||||||
/javascript-code-scanning.qls$/
|
"javascript-code-scanning.qls"
|
||||||
|
)
|
||||||
);
|
);
|
||||||
t.regex(
|
t.true(
|
||||||
config.queries["javascript"].custom[0].queries[0],
|
config.queries["javascript"].custom[0].queries[0].endsWith(
|
||||||
/.*\/override1$/
|
`${path.sep}override1`
|
||||||
|
)
|
||||||
);
|
);
|
||||||
t.regex(
|
t.true(
|
||||||
config.queries["javascript"].custom[1].queries[0],
|
config.queries["javascript"].custom[1].queries[0].endsWith(
|
||||||
/.*\/override2$/
|
`${path.sep}override2`
|
||||||
|
)
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -793,28 +809,35 @@ test("Queries in workflow file can be added to the set of queries without overri
|
|||||||
// and once for './foo' from the config file
|
// and once for './foo' from the config file
|
||||||
t.deepEqual(resolveQueriesArgs.length, 4);
|
t.deepEqual(resolveQueriesArgs.length, 4);
|
||||||
t.deepEqual(resolveQueriesArgs[1].queries.length, 1);
|
t.deepEqual(resolveQueriesArgs[1].queries.length, 1);
|
||||||
t.regex(resolveQueriesArgs[1].queries[0], /.*\/additional1$/);
|
t.true(resolveQueriesArgs[1].queries[0].endsWith(`${path.sep}additional1`));
|
||||||
t.deepEqual(resolveQueriesArgs[2].queries.length, 1);
|
t.deepEqual(resolveQueriesArgs[2].queries.length, 1);
|
||||||
t.regex(resolveQueriesArgs[2].queries[0], /.*\/additional2$/);
|
t.true(resolveQueriesArgs[2].queries[0].endsWith(`${path.sep}additional2`));
|
||||||
t.deepEqual(resolveQueriesArgs[3].queries.length, 1);
|
t.deepEqual(resolveQueriesArgs[3].queries.length, 1);
|
||||||
t.regex(resolveQueriesArgs[3].queries[0], /.*\/foo$/);
|
t.true(resolveQueriesArgs[3].queries[0].endsWith(`${path.sep}foo`));
|
||||||
|
|
||||||
// Now check that the end result contains all the queries
|
// Now check that the end result contains all the queries
|
||||||
t.deepEqual(config.queries["javascript"].builtin.length, 1);
|
t.deepEqual(config.queries["javascript"].builtin.length, 1);
|
||||||
t.deepEqual(config.queries["javascript"].custom.length, 3);
|
t.deepEqual(config.queries["javascript"].custom.length, 3);
|
||||||
t.regex(
|
t.true(
|
||||||
config.queries["javascript"].builtin[0],
|
config.queries["javascript"].builtin[0].endsWith(
|
||||||
/javascript-code-scanning.qls$/
|
"javascript-code-scanning.qls"
|
||||||
|
)
|
||||||
);
|
);
|
||||||
t.regex(
|
t.true(
|
||||||
config.queries["javascript"].custom[0].queries[0],
|
config.queries["javascript"].custom[0].queries[0].endsWith(
|
||||||
/.*\/additional1$/
|
`${path.sep}additional1`
|
||||||
|
)
|
||||||
);
|
);
|
||||||
t.regex(
|
t.true(
|
||||||
config.queries["javascript"].custom[1].queries[0],
|
config.queries["javascript"].custom[1].queries[0].endsWith(
|
||||||
/.*\/additional2$/
|
`${path.sep}additional2`
|
||||||
|
)
|
||||||
|
);
|
||||||
|
t.true(
|
||||||
|
config.queries["javascript"].custom[2].queries[0].endsWith(
|
||||||
|
`${path.sep}foo`
|
||||||
|
)
|
||||||
);
|
);
|
||||||
t.regex(config.queries["javascript"].custom[2].queries[0], /.*\/foo$/);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -1275,7 +1275,13 @@ export function validatePacksSpecification(
|
|||||||
|
|
||||||
if (
|
if (
|
||||||
packPath &&
|
packPath &&
|
||||||
(path.isAbsolute(packPath) || path.normalize(packPath) !== packPath)
|
(path.isAbsolute(packPath) ||
|
||||||
|
// Permit using "/" instead of "\" on Windows
|
||||||
|
// Use `x.split(y).join(z)` as a polyfill for `x.replaceAll(y, z)` since
|
||||||
|
// if we used a regex we'd need to escape the path separator on Windows
|
||||||
|
// which seems more awkward.
|
||||||
|
path.normalize(packPath).split(path.sep).join("/") !==
|
||||||
|
packPath.split(path.sep).join("/"))
|
||||||
) {
|
) {
|
||||||
throw new Error(getPacksStrInvalid(packStr, configFile));
|
throw new Error(getPacksStrInvalid(packStr, configFile));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -141,7 +141,7 @@ test("resolveUriToFile", (t) => {
|
|||||||
// should generally always be the case so this is fine.
|
// should generally always be the case so this is fine.
|
||||||
const cwd = process.cwd();
|
const cwd = process.cwd();
|
||||||
const filepath = __filename;
|
const filepath = __filename;
|
||||||
t.true(filepath.startsWith(`${cwd}/`));
|
t.true(filepath.startsWith(cwd + path.sep));
|
||||||
const relativeFilepath = filepath.substring(cwd.length + 1);
|
const relativeFilepath = filepath.substring(cwd.length + 1);
|
||||||
|
|
||||||
// Absolute paths are unmodified
|
// Absolute paths are unmodified
|
||||||
|
|||||||
Reference in New Issue
Block a user