A Playwright cleanup plugin
npm install playwright-cleanup
npm install playwright-cleanup --save-dev
`
Major Update: Version 2.x.x
> ### ❗❗❗Breaking Changes❗❗❗
>
> This release includes significant changes that may affect your existing implementations. Please read the following instructions carefully to ensure a smooth transition.
>
> ### Import and Extending Playwright Test
>
> We have simplified the way you import and extend the Playwright test in this version. Make sure to follow these new instructions to properly set up your tests.
Usage
Import playwright-cleanup in your test file as follows:
`typescript
import extendPlaywrightCleanup, { PlaywrightCleanup, CleanupOptions } from "playwright-cleanup";
`
Usage in test
To use playwright-cleanup, simply import the extendPlaywrightCleanup object and types, and then extend your test object using test.extend<>(). This will include the cleanup fixture functionality in your test. No further setup is required. Here's an example:
`typescript
import base from "@playwright/test";
import extendPlaywrightCleanup, { PlaywrightCleanup, CleanupOptions } from "playwright-cleanup";
const test = base.extend(extendPlaywrightCleanup());
test("should keep things tidy", async ({ page, cleanup}) => {
// ...
const accountId = createAccount("John Blow");
cleanup.addCleanup(async () => await deleteAccount(accountId)); // TODO: here we mark it for deletion *
addInvestmentPlan(accountId, "ModRisk");
cleanup.addCleanup(async () => await removeInvestmentPlan(accountId));
deposit(accountId, 1000000);
cleanup.addCleanup(async () => await removeDeposit(accountId));
//...
});
// * Please note that the actual execution of the cleanup code occurs after test completion.
// * Execution order: removeDeposit(accountId) -> removeInvestmentPlan(accountId) -> deleteAccount(accountId).
`
That's all there is to it! The cleanup functionality will now be automatically included in your tests.
* It is advisable to define the extended test object in a separate, reusable test-base file.
Options
$3
By default, the plugin writes detailed logging to the terminal. To suppress these logs, set the suppressLogging option to true and pass the option object as a parameter to extendPlaywrightCleanup:
`typescript
const options:CleanupOptions = {
suppressLogging: true
}
const test = base.extend(extendPlaywrightCleanup(options));
``