packages/dubbo-web-test/karma.browserstack.conf.cjs (109 lines of code) (raw):
if (process.env.BROWSERSTACK_USERNAME === undefined || process.env.BROWSERSTACK_ACCESS_KEY === undefined) {
throw new Error("The environment variables BROWSERSTACK_USERNAME and BROWSERSTACK_ACCESS_KEY are required to run tests on browserstack.");
}
module.exports = function(config) {
config.set({
plugins: [
require("./karma-fixup.cjs"),
require("karma-esbuild"),
require("karma-jasmine"),
require("karma-browserstack-launcher"),
require("karma-chrome-launcher"),
],
singleRun: true,
frameworks: [ "jasmine", "fixup" ],
preprocessors: {
"**/*.ts": "esbuild",
},
reporters: ["progress", "BrowserStack"],
files: [
"src/browserstackonly/*.ts",
"src/gen/**/*.ts",
],
esbuild: {
define: {},
plugins: [],
tsconfig: "./tsconfig.json",
target: "es2015",
singleBundle: true,
},
// global config of your BrowserStack account
browserStack: {
username: process.env.BROWSERSTACK_USERNAME,
accessKey: process.env.BROWSERSTACK_ACCESS_KEY,
apiClientEndpoint: 'https://api.browserstack.com'
},
browsers: [
"ChromeHeadless",
"bstack_ios_safari_13",
"bstack_macos_safari_14_1",
"bstack_macos_safari_13_1",
"bstack_macos_safari_12_1",
"bstack_macos_safari_11_1",
"bstack_windows_chrome_60_0",
"bstack_windows_ff_67_0",
],
customLaunchers: {
bstack_ios_safari_13: {
// Safari 13 on iOS 13.3 - the oldest iOS version available.
base : "BrowserStack",
"browserstack.tunnel": false,
device : "iPhone 11",
real_mobile: true,
browser : "safari",
os: "ios",
os_version : "13",
},
bstack_macos_safari_14_1: {
base: "BrowserStack",
"browserstack.tunnel": false,
browser_version: "14.1",
os: "OS X",
os_version: "Big Sur",
resolution: "1024x768",
browser: "safari",
},
bstack_macos_safari_13_1: {
base: "BrowserStack",
"browserstack.tunnel": false,
browser_version: "13.1",
os: "OS X",
os_version: "Catalina",
resolution: "1024x768",
browser: "safari",
},
bstack_macos_safari_12_1: {
base: "BrowserStack",
"browserstack.tunnel": false,
browser_version: "12.1",
os: "OS X",
os_version: "Mojave",
resolution: "1024x768",
browser: "safari",
},
bstack_macos_safari_11_1: {
// fetch API and encoder API are available on mac os since Safari 10.1:
// https://developer.mozilla.org/en-US/docs/Web/API/Encoding_API#browser_compatibility
// Unfortunately, jasmine-core/jasmine.js uses the object spread syntax
// (only available since Safari 11.1) and does not get transpiled, so we
// cannot test earlier versions.
base: "BrowserStack",
"browserstack.tunnel": false,
browser_version: "11.1",
os: "OS X",
os_version: "High Sierra",
resolution: "1024x768",
browser: "safari",
},
bstack_windows_chrome_60_0: {
// fetch API and encoder API are available since Chrome 42:
// https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API#browser_compatibility
// Unfortunately, jasmine-core/jasmine.js uses the object spread syntax
// (only available since Chrome 60) and does not get transpiled, so we
// cannot test earlier versions.
base: "BrowserStack",
"browserstack.tunnel": false,
browser: "chrome",
browser_version: "60.0",
os: "Windows",
os_version: "10"
},
bstack_windows_ff_67_0: {
// fetch API and encoder API are available since Firefox 42, but
// ReadableStream was only added in 65:
// https://developer.mozilla.org/en-US/docs/Web/API/Encoding_API#browser_compatibility
// We cannot test it here though, because capturing times out in
// browserstack.
base: "BrowserStack",
"browserstack.tunnel": false,
browser: "firefox",
browser_version: "67.0",
os: "Windows",
os_version: "10"
},
}
});
};