Skip to content

Commit b4ea7aa

Browse files
committed
Improve tests
1 parent 87ac48d commit b4ea7aa

1 file changed

Lines changed: 40 additions & 18 deletions

File tree

src/setup-codeql.test.ts

Lines changed: 40 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import * as actionsUtil from "./actions-util";
99
import * as api from "./api-client";
1010
import { Feature } from "./feature-flags";
1111
import { getRunnerLogger } from "./logging";
12+
import { getCacheRestoreKeyPrefix } from "./overlay/caching";
1213
import * as setupCodeql from "./setup-codeql";
1314
import * as tar from "./tar";
1415
import {
@@ -18,6 +19,7 @@ import {
1819
SAMPLE_DOTCOM_API_DETAILS,
1920
checkExpectedLogMessages,
2021
createFeatures,
22+
createTestConfig,
2123
getRecordingLogger,
2224
makeMacro,
2325
mockBundleDownloadApi,
@@ -618,6 +620,18 @@ const overlayMatchEnabledVersions = {
618620
toolsFeatureFlagsValid: true,
619621
};
620622

623+
async function fakeOverlayBaseCacheKey(
624+
language: string,
625+
cliVersion: string,
626+
suffix: string,
627+
): Promise<string> {
628+
const prefix = await getCacheRestoreKeyPrefix(
629+
createTestConfig({ languages: [language] }),
630+
cliVersion,
631+
);
632+
return `${prefix}${suffix}`;
633+
}
634+
621635
test.serial(
622636
"getCodeQLSource uses overlay-aware default version when requested for a PR",
623637
async (t) => {
@@ -629,7 +643,7 @@ test.serial(
629643
sinon.stub(api, "getAutomationID").resolves("test/");
630644
const listStub = sinon.stub(api, "listActionsCaches").resolves([
631645
{
632-
key: "codeql-overlay-base-database-1-aaaaaaaaaaaaaaaa-javascript-2.20.1-abc-1-1",
646+
key: await fakeOverlayBaseCacheKey("javascript", "2.20.1", "abc-1-1"),
633647
},
634648
]);
635649
sinon
@@ -667,7 +681,7 @@ test.serial(
667681
sinon.stub(api, "getAutomationID").resolves("test/");
668682
const listStub = sinon.stub(api, "listActionsCaches").resolves([
669683
{
670-
key: "codeql-overlay-base-database-1-aaaaaaaaaaaaaaaa-javascript-2.20.1-abc-1-1",
684+
key: await fakeOverlayBaseCacheKey("javascript", "2.20.1", "abc-1-1"),
671685
},
672686
]);
673687
sinon
@@ -699,16 +713,17 @@ test.serial(
699713
async (t) => {
700714
sinon.stub(api, "getAutomationID").resolves("test/");
701715
sinon.stub(api, "listActionsCaches").resolves([
702-
// Newer than any flag-enabled version: should be filtered out.
716+
// Flag-enabled versions present in the cache, listed in non-descending
717+
// order so the test exercises the sort.
703718
{
704-
key: "codeql-overlay-base-database-1-aaaaaaaaaaaaaaaa-javascript-2.21.0-abc-1-1",
719+
key: await fakeOverlayBaseCacheKey("javascript", "2.20.0", "ghi-3-1"),
705720
},
706-
// Flag-enabled versions present in the cache.
707721
{
708-
key: "codeql-overlay-base-database-1-aaaaaaaaaaaaaaaa-javascript-2.20.1-def-2-1",
722+
key: await fakeOverlayBaseCacheKey("javascript", "2.20.1", "def-2-1"),
709723
},
724+
// Newer than any flag-enabled version: should be filtered out.
710725
{
711-
key: "codeql-overlay-base-database-1-aaaaaaaaaaaaaaaa-javascript-2.20.0-ghi-3-1",
726+
key: await fakeOverlayBaseCacheKey("javascript", "2.21.0", "abc-1-1"),
712727
},
713728
]);
714729

@@ -731,7 +746,7 @@ test.serial(
731746
sinon.stub(api, "getAutomationID").resolves("test/");
732747
sinon.stub(api, "listActionsCaches").resolves([
733748
{
734-
key: "codeql-overlay-base-database-1-aaaaaaaaaaaaaaaa-javascript-2.19.0-abc-1-1",
749+
key: await fakeOverlayBaseCacheKey("javascript", "2.19.0", "abc-1-1"),
735750
},
736751
]);
737752

@@ -745,24 +760,31 @@ test.serial(
745760
},
746761
);
747762

748-
test.serial(
749-
"getEnabledVersionsWithOverlayBaseDatabases does not list caches when rawLanguages is empty",
750-
async (t) => {
763+
const noLanguagesMacro = makeMacro({
764+
exec: async (
765+
t: ExecutionContext<unknown>,
766+
rawLanguages: string[] | undefined,
767+
) => {
751768
const listStub = sinon.stub(api, "listActionsCaches").resolves([]);
752769

753770
const result = await setupCodeql.getEnabledVersionsWithOverlayBaseDatabases(
754771
overlayMatchEnabledVersions,
755-
undefined,
772+
rawLanguages,
756773
createFeatures([Feature.OverlayAnalysisMatchCodeqlVersion]),
757774
getRunnerLogger(true),
758775
);
759776
t.deepEqual(result, []);
760777
t.assert(
761778
listStub.notCalled,
762-
"Should not list Actions caches without rawLanguages.",
779+
"Should not list Actions caches without any rawLanguages.",
763780
);
764781
},
765-
);
782+
title: (providedTitle = "") =>
783+
`getEnabledVersionsWithOverlayBaseDatabases does not list caches when rawLanguages is ${providedTitle}`,
784+
});
785+
786+
noLanguagesMacro.serial("undefined", undefined);
787+
noLanguagesMacro.serial("an empty array", []);
766788

767789
test.serial(
768790
"getEnabledVersionsWithOverlayBaseDatabases returns empty when listing caches throws",
@@ -781,12 +803,12 @@ test.serial(
781803
);
782804

783805
test.serial(
784-
"getEnabledVersionsWithOverlayBaseDatabases includes the highest version when it is cached",
806+
"getEnabledVersionsWithOverlayBaseDatabases returns versions present in the cache",
785807
async (t) => {
786808
sinon.stub(api, "getAutomationID").resolves("test/");
787809
sinon.stub(api, "listActionsCaches").resolves([
788810
{
789-
key: "codeql-overlay-base-database-1-aaaaaaaaaaaaaaaa-javascript-2.20.2-abc-1-1",
811+
key: await fakeOverlayBaseCacheKey("javascript", "2.20.2", "abc-1-1"),
790812
},
791813
]);
792814

@@ -827,7 +849,7 @@ test.serial(
827849
sinon.stub(api, "getAutomationID").resolves("test/");
828850
const listStub = sinon.stub(api, "listActionsCaches").resolves([
829851
{
830-
key: "codeql-overlay-base-database-1-aaaaaaaaaaaaaaaa-javascript-2.20.1-abc-1-1",
852+
key: await fakeOverlayBaseCacheKey("javascript", "2.20.1", "abc-1-1"),
831853
},
832854
]);
833855

@@ -855,7 +877,7 @@ test.serial(
855877
sinon.stub(api, "getAutomationID").resolves("test/");
856878
sinon.stub(api, "listActionsCaches").resolves([
857879
{
858-
key: "codeql-overlay-base-database-1-aaaaaaaaaaaaaaaa-javascript-2.20.1-abc-1-1",
880+
key: await fakeOverlayBaseCacheKey("javascript", "2.20.1", "abc-1-1"),
859881
},
860882
]);
861883

0 commit comments

Comments
 (0)