we have Playwright Typescript fixtures like below: export const adminTest = baseTest.extend<{}, { workerStorageState: string }>({ storageState: ({ workerStorageState }, use) => use(workerStorageState), workerStorageState: [async ({ browser }, use) => { if (!checkEnvVars()) { adminTest.skip(); } const id = adminTest.info().parallelIndex; const adminFileName = path.resolve(adminTest.info().project.outputDir, `../state/state.admin.${id}.json`); if (fs.existsSync(adminFileName)) { await use(adminFileName); return; } let page = await browser.newPage({ storageState: undefined }); let adminlogin = new LoginPage(page); await adminlogin.loginWithAdminCredentials(); await page.context().storageState({ path: adminFileName }); await use(adminFileName); await page.context().close(); await page.close(); fs.unlinkSync(adminFileName); }, { scope: 'worker' }], }); export const singleProjectUserTest = baseTest.extend<{}, { workerStorageState: string }>({ storageState: ({ workerStorageState }, use) => use(workerStorageState), workerStorageState: [async ({ browser }, use) => { if (!checkEnvVars()) { singleProjectUserTest.skip(); } const id = singleProjectUserTest.info().parallelIndex; const singleProjectUserFileName = path.resolve(singleProjectUserTest.info().project.outputDir, `../state/state.single.project.user.${id}.json`); if (fs.existsSync(singleProjectUserFileName)) { await use(singleProjectUserFileName); return; } let page = await browser.newPage({ storageState: undefined }); let singleProjectUserlogin = new LoginPage(page); await singleProjectUserlogin.loginWithSingleProjectUserCredentials(); await page.context().storageState({ path: singleProjectUserFileName }); await use(singleProjectUserFileName); await page.context().close(); await page.close(); fs.unlinkSync(singleProjectUserFileName); }, { scope: 'worker' }], }); and test file like below: import { adminTest, singleProjectUserTest, adminWorkerStorageState, singleProjectUserWorkerStorageState } from '../fixtures/fixtures'; import { test } from '@playwright/test'; import { AttachmentsPage } from '../pages/attachments.page'; test.describe.configure({ mode: 'serial' }); test('Attachments test for Admin and Single Project User', async ({ browser }) => { // adminContext and all pages inside, including adminPage, are signed in as "admin". const adminContext = await browser.newContext({ storageState: String(adminWorkerStorageState) }); const adminPage = await adminContext.newPage(); // userContext and all pages inside, including userPage, are signed in as "user". const singleProjectUserContext = await browser.newContext({ storageState: String(singleProjectUserWorkerStorageState) }); const singleProjectUserPage = await singleProjectUserContext.newPage(); // ... interact with both adminPage and userPage ... let attachmentsPage = new AttachmentsPage(adminPage); await attachmentsPage.selectProjectB(); await attachmentsPage.nevigateNewRecordPage(); await attachmentsPage.createNewRecord(); await attachmentsPage.navigateToAttachmentPage(); await attachmentsPage.assignAttachmentToMe(); await adminPage.close(); let singleProjectUserAttachmentsPage = new AttachmentsPage(singleProjectUserPage); await singleProjectUserAttachmentsPage.navigateToRecordsPageAsSingleProjectUser(); await singleProjectUserAttachmentsPage.findRecordInRecordsList(); await singleProjectUserAttachmentsPage.navigateToAttachmentPage(); await singleProjectUserAttachmentsPage.verifyAttachmentIsReadOnly(); await singleProjectUserPage.close(); singleProjectUserAttachmentsPage = new AttachmentsPage(singleProjectUserPage); await singleProjectUserAttachmentsPage.navigateToRecordsPageAsSingleProjectUser(); await singleProjectUserAttachmentsPage.findRecordInRecordsList(); await singleProjectUserAttachmentsPage.navigateToAttachmentPage(); await singleProjectUserAttachmentsPage.assignAttachmentToMe(); await singleProjectUserAttachmentsPage.verifyAttachmentIsEditable(); await singleProjectUserAttachmentsPage.verifyAttachmentHistory(); await singleProjectUserPage.close(); await adminContext.close(); await singleProjectUserContext.close(); }); how to inherit test in the scope of test file from both adminTest and singleProjectUserTest fixtures?