@@ -9,8 +9,10 @@ const chalk = require('chalk');
99const childProcess = require('child_process')
1010
1111program.option('-s, --sauce', 'run tests on sauce labs')
12− .option('--chrome', 'run only chrome tests')
13− .option('--firefox', 'run only firefox tests')
12+ .option('--chrome', 'run chrome tests (default)')
13+ .option('--firefox', 'run firefox tests')
14+ .option('--ie', 'run ie tests')
15+ .option('--edge', 'run edge tests')
1416 .option('--build [value]', 'Set build number for sauce labs')
1517 .option('--name [value]', 'Set run name for sauce labs')
1618 .option('--verbose', 'Print out all test results')
@@ -18,23 +20,36 @@ program.option('-s, --sauce', 'run tests on sauce labs')
1820
1921
2022// 'Windows 10'
21−const windows = [
22− {
23− browser: "chrome"
23+
24+
25+const windows = {
26+ chrome: {
27+ platform: "Windows 10"
28+ , browser: "chrome"
2429 , browserVersion: "latest"
2530 },
26− {
27− browser: "firefox"
31+ firefox: {
32+ platform: "Windows 10"
33+ , browser: "firefox"
2834 , browserVersion: "latest"
2935 },
30− {
31− browser: "MicrosoftEdge"
36+ edge: {
37+ platform: "Windows 10"
38+ , browser: "MicrosoftEdge"
3239 , browserVersion: "latest"
3340 },
34− {
35− browser: "internet explorer"
41+ ie: {
42+ platform: "Windows 10"
43+ , browser: "internet explorer"
3644 , browserVersion: "latest"
3745 }
46+}
47+
48+const all_windows = [
49+ windows.chrome
50+ , windows.firefox
51+ , windows.edge
52+ , windows.ie
3853]
3954
4055// "macOS 10.14"
@@ -56,15 +71,23 @@ const osx = {
5671 }
5772}
5873
74+const all_osx = [
75+ osx.chrome
76+ , osx.firefox
77+ , osx.safari
78+]
79+
80+const all_browsers =
81+ all_windows.concat(all_osx)
5982
6083function prepare_all_envs(config) {
6184 var envs = []
6285
63− for (i = 0; i < windows.length; i++) {
86+ for (i = 0; i < all_windows.length; i++) {
6487 envs.push({
6588 browser: windows[i].browser,
6689 browserVersion: windows[i].browserVersion,
67− platform: "Windows 10",
90+ platform: winddows[i].platform,
6891 build: config.build,
6992 name: config.name
7093 })
@@ -148,14 +171,14 @@ async function run_test(driver, url) {
148171 if (!fs.existsSync(dir)) {
149172 fs.mkdirSync(dir);
150173 }
151−
174+ console.log("Compiling tests")
152175 await compile_and_embed({
153176 template: "./tests/automation/templates/gather-styles.html",
154177 target: "./tmp/test.html",
155178 elm: ["Tests/Run.elm"],
156179 elmOptions: { cwd: "./tests" }
157180 })
158− console.log("Tests done compiling")
181+ console.log("Done compiling")
159182
160183 if (program.sauce) {
161184 const build = program.build
@@ -194,7 +217,6 @@ async function run_test(driver, url) {
194217 }
195218
196219 } else {
197−
198220 // Run chrome if nothing else is selected
199221 if (program.chrome || (!program.chrome && !program.firefox)) {
200222 console.log("Running locally on Chrome...")
@@ -208,7 +230,18 @@ async function run_test(driver, url) {
208230 var results = await run_test(driver, "file://" + path.resolve('./tmp/test.html'))
209231 print_results("Local Firefox", results);
210232 }
211−
233+ if (program.ie) {
234+ console.log("Running locally on IE...")
235+ const driver = await prepare_local_driver(windows.ie)
236+ var results = await run_test(driver, "file://" + path.resolve('./tmp/test.html'))
237+ print_results("Local IE", results);
238+ }
239+ if (program.edge) {
240+ console.log("Running locally on Edge...")
241+ const driver = await prepare_local_driver(windows.edge)
242+ var results = await run_test(driver, "file://" + path.resolve('./tmp/test.html'))
243+ print_results("Local Edge", results);
244+ }
212245 }
213246})();
214247