mirror of
https://github.com/microsoft/playwright.git
synced 2025-06-26 21:40:17 +00:00
chore: split playwright.fixtures into files (2) (#3983)
This commit is contained in:
parent
5b9f489e55
commit
76be9540d1
56
test/platform.fixtures.ts
Normal file
56
test/platform.fixtures.ts
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
/**
|
||||||
|
* Copyright Microsoft Corporation. All rights reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { fixtures as baseFixtures } from '@playwright/test-runner';
|
||||||
|
|
||||||
|
type PlatformParameters = {
|
||||||
|
platform: 'win32' | 'linux' | 'darwin'
|
||||||
|
};
|
||||||
|
|
||||||
|
type PlatformWorkerFixtures = {
|
||||||
|
isWindows: boolean;
|
||||||
|
isMac: boolean;
|
||||||
|
isLinux: boolean;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const fixtures = baseFixtures
|
||||||
|
.declareParameters<PlatformParameters>()
|
||||||
|
.declareWorkerFixtures<PlatformWorkerFixtures>();
|
||||||
|
const { defineWorkerFixture, defineParameter, generateParametrizedTests } = fixtures;
|
||||||
|
|
||||||
|
export const options = {
|
||||||
|
MAC: (parameters: PlatformParameters) => parameters.platform === 'darwin',
|
||||||
|
LINUX: (parameters: PlatformParameters) => parameters.platform === 'linux',
|
||||||
|
WIN: (parameters: PlatformParameters) => parameters.platform === 'win32',
|
||||||
|
};
|
||||||
|
|
||||||
|
defineParameter('platform', 'Operating system', process.platform as ('win32' | 'linux' | 'darwin'));
|
||||||
|
|
||||||
|
generateParametrizedTests(
|
||||||
|
'platform',
|
||||||
|
process.env.PWTESTREPORT ? ['win32', 'darwin', 'linux'] : [process.platform as ('win32' | 'linux' | 'darwin')]);
|
||||||
|
|
||||||
|
defineWorkerFixture('isWindows', async ({platform}, test) => {
|
||||||
|
await test(platform === 'win32');
|
||||||
|
});
|
||||||
|
|
||||||
|
defineWorkerFixture('isMac', async ({platform}, test) => {
|
||||||
|
await test(platform === 'darwin');
|
||||||
|
});
|
||||||
|
|
||||||
|
defineWorkerFixture('isLinux', async ({platform}, test) => {
|
||||||
|
await test(platform === 'linux');
|
||||||
|
});
|
||||||
@ -17,6 +17,7 @@
|
|||||||
import { expect } from '@playwright/test';
|
import { expect } from '@playwright/test';
|
||||||
import { config } from '@playwright/test-runner';
|
import { config } from '@playwright/test-runner';
|
||||||
import { fixtures as httpFixtures } from './http.fixtures';
|
import { fixtures as httpFixtures } from './http.fixtures';
|
||||||
|
import { fixtures as platformFixtures, options as platformOptions } from './platform.fixtures';
|
||||||
import assert from 'assert';
|
import assert from 'assert';
|
||||||
import childProcess from 'child_process';
|
import childProcess from 'child_process';
|
||||||
import fs from 'fs';
|
import fs from 'fs';
|
||||||
@ -34,7 +35,6 @@ const mkdtempAsync = util.promisify(fs.mkdtemp);
|
|||||||
const removeFolderAsync = util.promisify(require('rimraf'));
|
const removeFolderAsync = util.promisify(require('rimraf'));
|
||||||
|
|
||||||
type PlaywrightParameters = {
|
type PlaywrightParameters = {
|
||||||
platform: 'win32' | 'linux' | 'darwin'
|
|
||||||
browserName: string;
|
browserName: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -49,9 +49,6 @@ type PlaywrightWorkerFixtures = {
|
|||||||
isChromium: boolean;
|
isChromium: boolean;
|
||||||
isFirefox: boolean;
|
isFirefox: boolean;
|
||||||
isWebKit: boolean;
|
isWebKit: boolean;
|
||||||
isWindows: boolean;
|
|
||||||
isMac: boolean;
|
|
||||||
isLinux: boolean;
|
|
||||||
expectedSSLError: string;
|
expectedSSLError: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -65,7 +62,7 @@ type PlaywrightTestFixtures = {
|
|||||||
launchPersistent: (options?: Parameters<BrowserType<Browser>['launchPersistentContext']>[1]) => Promise<{context: BrowserContext, page: Page}>;
|
launchPersistent: (options?: Parameters<BrowserType<Browser>['launchPersistentContext']>[1]) => Promise<{context: BrowserContext, page: Page}>;
|
||||||
};
|
};
|
||||||
|
|
||||||
const fixtures = httpFixtures
|
const fixtures = httpFixtures.union(platformFixtures)
|
||||||
.declareParameters<PlaywrightParameters>()
|
.declareParameters<PlaywrightParameters>()
|
||||||
.declareWorkerFixtures<PlaywrightWorkerFixtures>()
|
.declareWorkerFixtures<PlaywrightWorkerFixtures>()
|
||||||
.declareTestFixtures<PlaywrightTestFixtures>();
|
.declareTestFixtures<PlaywrightTestFixtures>();
|
||||||
@ -87,13 +84,11 @@ export const options = {
|
|||||||
CHROMIUM: (parameters: PlaywrightParameters) => parameters.browserName === 'chromium',
|
CHROMIUM: (parameters: PlaywrightParameters) => parameters.browserName === 'chromium',
|
||||||
FIREFOX: (parameters: PlaywrightParameters) => parameters.browserName === 'firefox',
|
FIREFOX: (parameters: PlaywrightParameters) => parameters.browserName === 'firefox',
|
||||||
WEBKIT: (parameters: PlaywrightParameters) => parameters.browserName === 'webkit',
|
WEBKIT: (parameters: PlaywrightParameters) => parameters.browserName === 'webkit',
|
||||||
MAC: (parameters: PlaywrightParameters) => parameters.platform === 'darwin',
|
|
||||||
LINUX: (parameters: PlaywrightParameters) => parameters.platform === 'linux',
|
|
||||||
WIN: (parameters: PlaywrightParameters) => parameters.platform === 'win32',
|
|
||||||
HEADLESS: !!valueFromEnv('HEADLESS', true),
|
HEADLESS: !!valueFromEnv('HEADLESS', true),
|
||||||
WIRE: !!process.env.PWWIRE,
|
WIRE: !!process.env.PWWIRE,
|
||||||
SLOW_MO: valueFromEnv('SLOW_MO', 0),
|
SLOW_MO: valueFromEnv('SLOW_MO', 0),
|
||||||
TRACING: valueFromEnv('TRACING', false),
|
TRACING: valueFromEnv('TRACING', false),
|
||||||
|
...platformOptions,
|
||||||
};
|
};
|
||||||
|
|
||||||
const getExecutablePath = browserName => {
|
const getExecutablePath = browserName => {
|
||||||
@ -169,16 +164,10 @@ defineWorkerFixture('browserType', async ({playwright, browserName}, test) => {
|
|||||||
|
|
||||||
defineParameter('browserName', 'Browser type name', '');
|
defineParameter('browserName', 'Browser type name', '');
|
||||||
|
|
||||||
defineParameter('platform', 'Operating system', process.platform as ('win32' | 'linux' | 'darwin'));
|
|
||||||
|
|
||||||
generateParametrizedTests(
|
generateParametrizedTests(
|
||||||
'browserName',
|
'browserName',
|
||||||
process.env.BROWSER ? [process.env.BROWSER] : ['chromium', 'webkit', 'firefox']);
|
process.env.BROWSER ? [process.env.BROWSER] : ['chromium', 'webkit', 'firefox']);
|
||||||
|
|
||||||
generateParametrizedTests(
|
|
||||||
'platform',
|
|
||||||
process.env.PWTESTREPORT ? ['win32', 'darwin', 'linux'] : [process.platform as ('win32' | 'linux' | 'darwin')]);
|
|
||||||
|
|
||||||
defineWorkerFixture('isChromium', async ({browserName}, test) => {
|
defineWorkerFixture('isChromium', async ({browserName}, test) => {
|
||||||
await test(browserName === 'chromium');
|
await test(browserName === 'chromium');
|
||||||
});
|
});
|
||||||
@ -191,18 +180,6 @@ defineWorkerFixture('isWebKit', async ({browserName}, test) => {
|
|||||||
await test(browserName === 'webkit');
|
await test(browserName === 'webkit');
|
||||||
});
|
});
|
||||||
|
|
||||||
defineWorkerFixture('isWindows', async ({platform}, test) => {
|
|
||||||
await test(platform === 'win32');
|
|
||||||
});
|
|
||||||
|
|
||||||
defineWorkerFixture('isMac', async ({platform}, test) => {
|
|
||||||
await test(platform === 'darwin');
|
|
||||||
});
|
|
||||||
|
|
||||||
defineWorkerFixture('isLinux', async ({platform}, test) => {
|
|
||||||
await test(platform === 'linux');
|
|
||||||
});
|
|
||||||
|
|
||||||
defineWorkerFixture('browser', async ({browserType, defaultBrowserOptions}, test) => {
|
defineWorkerFixture('browser', async ({browserType, defaultBrowserOptions}, test) => {
|
||||||
const browser = await browserType.launch(defaultBrowserOptions);
|
const browser = await browserType.launch(defaultBrowserOptions);
|
||||||
await test(browser);
|
await test(browser);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user