Skip to content

Commit

Permalink
Update vitest
Browse files Browse the repository at this point in the history
  • Loading branch information
edoardocavazza committed Mar 5, 2024
1 parent 310bdfd commit 75c057a
Show file tree
Hide file tree
Showing 4 changed files with 1,257 additions and 968 deletions.
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@
"prepack": "yarn build && publint"
},
"dependencies": {
"@chialab/quantum": "^1.0.0-alpha.6",
"@chialab/quantum": "^1.0.0",
"htm": "^3.0.3"
},
"devDependencies": {
Expand All @@ -63,7 +63,7 @@
"@vitest/coverage-v8": "^1.0.0",
"@vitest/ui": "^1.0.1",
"browserstack-local": "^1.5.5",
"esbuild": "^0.19.4",
"esbuild": "^0.20.0",
"eslint": "^8.0.0",
"eslint-plugin-jsdoc": "^39.3.2",
"ip": "^1.1.8",
Expand Down
2 changes: 1 addition & 1 deletion test/providers/vitest-browserstack-provider.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ interface BrowserStackConfig {
}

declare module 'vite' {
interface UserConfig {
interface ResolvedConfig {
browserstack?: BrowserStackConfig;
}
}
33 changes: 16 additions & 17 deletions test/providers/vitest-browserstack-provider.ts
Original file line number Diff line number Diff line change
@@ -1,18 +1,15 @@
import { Local, type Options } from 'browserstack-local';
import ip from 'ip';
import type { BrowserProvider, BrowserProviderInitializationOptions, WorkspaceProject } from 'vitest/node';
import { remote, type RemoteOptions } from 'webdriverio';

/**
* A BrowserStack provider for vitest.
*/
export default class BrowserStackProvider {
export default class BrowserStackProvider implements BrowserProvider {
name = 'browserstack';

/**
* Vitest does not exposes WorkspaceProject
* @see https://github.com/vitest-dev/vitest/blob/main/packages/vitest/src/node/workspace.ts
*/
protected ctx: any;
protected ctx: WorkspaceProject;
protected testName: string;
protected bs: Local;
protected bsOptions: Partial<Options>;
Expand All @@ -27,18 +24,29 @@ export default class BrowserStackProvider {
});
}

initialize({ ctx, config, browser }, { browser: browserName }) {
initialize(ctx: WorkspaceProject, options: BrowserProviderInitializationOptions) {
this.ctx = ctx;

const { config, browser } = ctx;
if (!browser) {
throw new Error('BrowserStack provider requires a browser configuration');
}

this.testName = config.name;

const { browser: browserName } = options;
const browserstackConfig = browser.config.browserstack || {};
if (!browserstackConfig.capabilities) {
throw new Error('Missing capabilities in browserstack configuration');
}

this.bsOptions = {
force: true,
forceLocal: true,
user: process.env.BROWSERSTACK_USERNAME as string,
key: process.env.BROWSERSTACK_ACCESS_KEY as string,
localIdentifier: `vitest-${Date.now()}`,
...browserstackConfig.options,
...(browserstackConfig.options || {}),
};
this.capabilities = browserstackConfig.capabilities[browserName.replace('browserstack:', '')];
if (!this.capabilities) {
Expand Down Expand Up @@ -112,15 +120,6 @@ export default class BrowserStackProvider {
}
}

/**
* TODO
* @returns A callback.
* @see https://github.com/vitest-dev/vitest/blob/eac7776521bcf4e335771b1ab4f823f40ad9c4ff/packages/vitest/src/node/browser/webdriver.ts#L74
*/
catchError() {
return () => {};
}

async close() {
try {
if (this._tunnelPromise) {
Expand Down
Loading

0 comments on commit 75c057a

Please sign in to comment.