Skip to content

Commit 76df703

Browse files
committed
Add unit tests for disabling overlay analysis by custom repo property
1 parent ad10347 commit 76df703

File tree

3 files changed

+111
-25
lines changed

3 files changed

+111
-25
lines changed

lib/init-action.js

Lines changed: 31 additions & 24 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/config-utils.test.ts

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ import {
3838
withTmpDir,
3939
BuildMode,
4040
} from "./util";
41+
import { RepositoryProperties, RepositoryPropertyName } from "./feature-flags/properties";
4142

4243
setupTests(test);
4344

@@ -1005,6 +1006,7 @@ interface OverlayDatabaseModeTestSetup {
10051006
codeqlVersion: string;
10061007
gitRoot: string | undefined;
10071008
codeScanningConfig: configUtils.UserConfig;
1009+
repositoryProperties?: RepositoryProperties | undefined;
10081010
}
10091011

10101012
const defaultOverlayDatabaseModeTestSetup: OverlayDatabaseModeTestSetup = {
@@ -1092,6 +1094,7 @@ const getOverlayDatabaseModeMacro = test.macro({
10921094
tempDir, // sourceRoot
10931095
setup.buildMode,
10941096
setup.codeScanningConfig,
1097+
setup.repositoryProperties || {},
10951098
logger,
10961099
);
10971100

@@ -1180,6 +1183,21 @@ test(
11801183
},
11811184
);
11821185

1186+
test(
1187+
getOverlayDatabaseModeMacro,
1188+
"Overlay analysis disabled by repository property overrides overlay-base database on default branch when feature enabled",
1189+
{
1190+
languages: [KnownLanguage.javascript],
1191+
features: [Feature.OverlayAnalysis, Feature.OverlayAnalysisJavascript],
1192+
isDefaultBranch: true,
1193+
repositoryProperties: { [RepositoryPropertyName.DISABLE_OVERLAY_ANALYSIS]: "true" },
1194+
},
1195+
{
1196+
overlayDatabaseMode: OverlayDatabaseMode.None,
1197+
useOverlayDatabaseCaching: false,
1198+
},
1199+
)
1200+
11831201
test(
11841202
getOverlayDatabaseModeMacro,
11851203
"Overlay-base database on default branch when feature enabled with custom analysis",
@@ -1214,6 +1232,24 @@ test(
12141232
},
12151233
);
12161234

1235+
test(
1236+
getOverlayDatabaseModeMacro,
1237+
"Overlay analysis disabled by repository property overrides overlay-base database on default branch when code-scanning feature enabled",
1238+
{
1239+
languages: [KnownLanguage.javascript],
1240+
features: [
1241+
Feature.OverlayAnalysis,
1242+
Feature.OverlayAnalysisCodeScanningJavascript,
1243+
],
1244+
isDefaultBranch: true,
1245+
repositoryProperties: { [RepositoryPropertyName.DISABLE_OVERLAY_ANALYSIS]: "true" },
1246+
},
1247+
{
1248+
overlayDatabaseMode: OverlayDatabaseMode.None,
1249+
useOverlayDatabaseCaching: false,
1250+
},
1251+
)
1252+
12171253
test(
12181254
getOverlayDatabaseModeMacro,
12191255
"No overlay-base database on default branch when code-scanning feature enabled with disable-default-queries",
@@ -1350,6 +1386,21 @@ test(
13501386
},
13511387
);
13521388

1389+
test(
1390+
getOverlayDatabaseModeMacro,
1391+
"Overlay analysis disabled by repository property overrides overlay analysis on PR when feature enabled",
1392+
{
1393+
languages: [KnownLanguage.javascript],
1394+
features: [Feature.OverlayAnalysis, Feature.OverlayAnalysisJavascript],
1395+
isPullRequest: true,
1396+
repositoryProperties: { [RepositoryPropertyName.DISABLE_OVERLAY_ANALYSIS]: "true" },
1397+
},
1398+
{
1399+
overlayDatabaseMode: OverlayDatabaseMode.None,
1400+
useOverlayDatabaseCaching: false,
1401+
},
1402+
)
1403+
13531404
test(
13541405
getOverlayDatabaseModeMacro,
13551406
"Overlay analysis on PR when feature enabled with custom analysis",
@@ -1532,6 +1583,34 @@ test(
15321583
},
15331584
);
15341585

1586+
test(
1587+
getOverlayDatabaseModeMacro,
1588+
"Overlay analysis disabled by repository property overrides PR analysis by env for other-org",
1589+
{
1590+
overlayDatabaseEnvVar: "overlay",
1591+
repositoryOwner: "other-org",
1592+
repositoryProperties: { [RepositoryPropertyName.DISABLE_OVERLAY_ANALYSIS]: "true" },
1593+
},
1594+
{
1595+
overlayDatabaseMode: OverlayDatabaseMode.None,
1596+
useOverlayDatabaseCaching: false,
1597+
},
1598+
)
1599+
1600+
test(
1601+
getOverlayDatabaseModeMacro,
1602+
"Disable overlay analysis repository property must be true to disable overlay analysis",
1603+
{
1604+
overlayDatabaseEnvVar: "overlay",
1605+
repositoryOwner: "other-org",
1606+
repositoryProperties: { [RepositoryPropertyName.DISABLE_OVERLAY_ANALYSIS]: "false" },
1607+
},
1608+
{
1609+
overlayDatabaseMode: OverlayDatabaseMode.Overlay,
1610+
useOverlayDatabaseCaching: false,
1611+
},
1612+
)
1613+
15351614
test(
15361615
getOverlayDatabaseModeMacro,
15371616
"Overlay PR analysis by feature flag for dsp-testing",

src/config-utils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -666,7 +666,7 @@ export async function getOverlayDatabaseMode(
666666
let useOverlayDatabaseCaching = false;
667667

668668
const overlayAnalysisDisabled = repositoryProperties[RepositoryPropertyName.DISABLE_OVERLAY_ANALYSIS];
669-
if (overlayAnalysisDisabled) {
669+
if (overlayAnalysisDisabled && overlayAnalysisDisabled === "true") {
670670
logger.info(`Setting overlay database mode to ${overlayDatabaseMode} ` +
671671
`because overlay analysis is disabled by a custom repository property.`);
672672
} else {

0 commit comments

Comments
 (0)