Skip to content

Commit

Permalink
fix(coverage) simplify starting of coverage reports
Browse files Browse the repository at this point in the history
Signed-off-by: David Edler <david.edler@canonical.com>
  • Loading branch information
edlerd committed Feb 26, 2024
1 parent 58ee478 commit 46faa10
Show file tree
Hide file tree
Showing 8 changed files with 21 additions and 59 deletions.
16 changes: 2 additions & 14 deletions tests/fixtures/coverage.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,26 +5,14 @@ import v8ToIstanbul from "v8-to-istanbul";
import { CoverageMapData } from "istanbul-lib-coverage";
import { generateUUID } from "util/helpers";

export const startCoverage = async (
page: Page,
hasCoverage: boolean,
): Promise<void> => {
if (!hasCoverage) {
return;
}
export const startCoverage = async (page: Page): Promise<void> => {
await page.coverage.startJSCoverage({
reportAnonymousScripts: true,
resetOnNavigation: false,
});
};

export const finishCoverage = async (
page: Page,
hasCoverage: boolean,
): Promise<void> => {
if (!hasCoverage) {
return;
}
export const finishCoverage = async (page: Page): Promise<void> => {
const coverage = await page.coverage.stopJSCoverage();
for (const entry of coverage) {
if (entry.url.endsWith(".css")) {
Expand Down
10 changes: 7 additions & 3 deletions tests/fixtures/lxd-test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,13 @@ export const test = base.extend<TestOptions>({
hasCoverage: [false, { option: true }],
runCoverage: [
async ({ page, hasCoverage }, use) => {
await startCoverage(page, hasCoverage);
await use(page);
await finishCoverage(page, hasCoverage);
if (hasCoverage) {
await startCoverage(page);
await use(page);
await finishCoverage(page);
} else {
await use(page);
}
},
{ auto: true },
],
Expand Down
9 changes: 2 additions & 7 deletions tests/instance-panel.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,24 +11,19 @@ import {
startInstanceFromPanel,
stopInstanceFromPanel,
} from "./helpers/instancePanel";
import { finishCoverage, startCoverage } from "./fixtures/coverage";

let instance = randomInstanceName();

test.beforeAll(async ({ browserName, browser, hasCoverage }) => {
test.beforeAll(async ({ browserName, browser }) => {
instance = `${browserName}-${instance}`;
const page = await browser.newPage();
await startCoverage(page, hasCoverage);
await createInstance(page, instance);
await finishCoverage(page, hasCoverage);
await page.close();
});

test.afterAll(async ({ browser, hasCoverage }) => {
test.afterAll(async ({ browser }) => {
const page = await browser.newPage();
await startCoverage(page, hasCoverage);
await deleteInstance(page, instance);
await finishCoverage(page, hasCoverage);
await page.close();
});

Expand Down
9 changes: 2 additions & 7 deletions tests/instances.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,32 +25,27 @@ import {
deleteProfile,
randomProfileName,
} from "./helpers/profile";
import { finishCoverage, startCoverage } from "./fixtures/coverage";

let instance = randomInstanceName();
let vmInstance = randomInstanceName();
let profile = randomProfileName();

test.beforeAll(async ({ browser, browserName, hasCoverage }) => {
test.beforeAll(async ({ browser, browserName }) => {
instance = `${browserName}-${instance}`;
vmInstance = `${browserName}-${vmInstance}`;
profile = `${browserName}-${profile}`;
const page = await browser.newPage();
await startCoverage(page, hasCoverage);
await createProfile(page, profile);
await createInstance(page, instance);
await createInstance(page, vmInstance, "virtual-machine");
await finishCoverage(page, hasCoverage);
await page.close();
});

test.afterAll(async ({ browser, hasCoverage }) => {
test.afterAll(async ({ browser }) => {
const page = await browser.newPage();
await startCoverage(page, hasCoverage);
await deleteInstance(page, instance);
await deleteInstance(page, vmInstance);
await deleteProfile(page, profile);
await finishCoverage(page, hasCoverage);
await page.close();
});

Expand Down
9 changes: 2 additions & 7 deletions tests/networks.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,25 +13,20 @@ import {
assertReadMode,
setOption,
} from "./helpers/configuration";
import { finishCoverage, startCoverage } from "./fixtures/coverage";

let network = randomNetworkName();

test.beforeAll(async ({ browser, browserName, hasCoverage }) => {
test.beforeAll(async ({ browser, browserName }) => {
// network names can only be 15 characters long
network = `${browserName.substring(0, 2)}-${network}`;
const page = await browser.newPage();
await startCoverage(page, hasCoverage);
await createNetwork(page, network);
await finishCoverage(page, hasCoverage);
await page.close();
});

test.afterAll(async ({ browser, hasCoverage }) => {
test.afterAll(async ({ browser }) => {
const page = await browser.newPage();
await startCoverage(page, hasCoverage);
await deleteNetwork(page, network);
await finishCoverage(page, hasCoverage);
await page.close();
});

Expand Down
9 changes: 2 additions & 7 deletions tests/notification.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,24 +15,19 @@ import {
toggleNotificationList,
dismissFirstNotificationFromList,
} from "./helpers/notification";
import { finishCoverage, startCoverage } from "./fixtures/coverage";

let instance = randomInstanceName();

test.beforeAll(async ({ browserName, browser, hasCoverage }) => {
test.beforeAll(async ({ browserName, browser }) => {
instance = `${browserName}-${instance}`;
const page = await browser.newPage();
await startCoverage(page, hasCoverage);
await createInstance(page, instance);
await finishCoverage(page, hasCoverage);
await page.close();
});

test.afterAll(async ({ browser, hasCoverage }) => {
test.afterAll(async ({ browser }) => {
const page = await browser.newPage();
await startCoverage(page, hasCoverage);
await deleteInstance(page, instance);
await finishCoverage(page, hasCoverage);
await page.close();
});

Expand Down
9 changes: 2 additions & 7 deletions tests/profiles.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,24 +18,19 @@ import {
saveProfile,
visitProfile,
} from "./helpers/profile";
import { finishCoverage, startCoverage } from "./fixtures/coverage";

let profile = randomProfileName();

test.beforeAll(async ({ browserName, browser, hasCoverage }) => {
test.beforeAll(async ({ browserName, browser }) => {
profile = `${browserName}-${profile}`;
const page = await browser.newPage();
await startCoverage(page, hasCoverage);
await createProfile(page, profile);
await finishCoverage(page, hasCoverage);
await page.close();
});

test.afterAll(async ({ browser, hasCoverage }) => {
test.afterAll(async ({ browser }) => {
const page = await browser.newPage();
await startCoverage(page, hasCoverage);
await deleteProfile(page, profile);
await finishCoverage(page, hasCoverage);
await page.close();
});

Expand Down
9 changes: 2 additions & 7 deletions tests/storage.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,24 +16,19 @@ import {
} from "./helpers/storageVolume";
import { activateOverride, setInput } from "./helpers/configuration";
import { randomSnapshotName } from "./helpers/snapshots";
import { finishCoverage, startCoverage } from "./fixtures/coverage";

let volume = randomVolumeName();

test.beforeAll(async ({ browser, browserName, hasCoverage }) => {
test.beforeAll(async ({ browser, browserName }) => {
const page = await browser.newPage();
await startCoverage(page, hasCoverage);
volume = `${browserName}-${volume}`;
await createVolume(page, volume);
await finishCoverage(page, hasCoverage);
await page.close();
});

test.afterAll(async ({ browser, hasCoverage }) => {
test.afterAll(async ({ browser }) => {
const page = await browser.newPage();
await startCoverage(page, hasCoverage);
await deleteVolume(page, volume);
await finishCoverage(page, hasCoverage);
await page.close();
});

Expand Down

0 comments on commit 46faa10

Please sign in to comment.