@camperaid/watest 2.4.7 → 2.4.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. package/.prettierrc.js +1 -3
  2. package/.watestrc.js +7 -3
  3. package/bin/watest.js +3 -8
  4. package/core/base.js +83 -69
  5. package/core/core.js +25 -46
  6. package/core/format.js +96 -56
  7. package/core/process_args.js +1 -5
  8. package/core/series.js +62 -57
  9. package/core/settings.js +32 -32
  10. package/core/spawn.js +14 -21
  11. package/core/util.js +12 -19
  12. package/esling.config.js +0 -0
  13. package/eslint.config.js +27 -0
  14. package/index.js +11 -17
  15. package/interfaces/logger.js +1 -3
  16. package/interfaces/servicer.js +1 -3
  17. package/logging/filestream.js +3 -7
  18. package/logging/logging.js +5 -11
  19. package/logging/logpipe.js +21 -21
  20. package/package.json +12 -11
  21. package/tests/base/t_api.js +3 -6
  22. package/tests/base/t_contains.js +12 -12
  23. package/tests/base/t_core.js +11 -8
  24. package/tests/base/t_format.js +13 -14
  25. package/tests/base/t_is.js +9 -11
  26. package/tests/base/t_is_object.js +23 -25
  27. package/tests/base/t_is_primitive.js +12 -14
  28. package/tests/base/t_is_string.js +6 -8
  29. package/tests/base/t_ok.js +4 -6
  30. package/tests/base/t_stringify.js +6 -8
  31. package/tests/base/t_test_.js +3 -5
  32. package/tests/base/t_throws.js +82 -18
  33. package/tests/base/test.js +14 -21
  34. package/tests/e2e/samples/{loader/.watestrc.cjs → folder/.watestrc.js} +1 -1
  35. package/tests/e2e/samples/folder/package-lock.json +1019 -5940
  36. package/tests/e2e/samples/folder/package.json +3 -2
  37. package/tests/e2e/samples/folder/tests/meta.js +1 -1
  38. package/tests/e2e/samples/folder/tests/unit/t_test.js +3 -3
  39. package/tests/e2e/samples/{loader_mixed/.watestrc.cjs → loader/.watestrc.js} +1 -1
  40. package/tests/e2e/samples/loader/package-lock.json +1751 -28
  41. package/tests/e2e/samples/loader/package.json +2 -2
  42. package/tests/e2e/samples/loader/tests/meta.js +2 -2
  43. package/tests/e2e/samples/{folder/.watestrc.cjs → loader_mixed/.watestrc.js} +1 -1
  44. package/tests/e2e/samples/loader_mixed/package-lock.json +1751 -28
  45. package/tests/e2e/samples/loader_mixed/tests/ui/meta.js +2 -2
  46. package/tests/e2e/samples/loader_multiple/{.watestrc.cjs → .watestrc.js} +1 -1
  47. package/tests/e2e/samples/loader_multiple/package-lock.json +1751 -28
  48. package/tests/e2e/samples/loader_multiple/package.json +2 -2
  49. package/tests/e2e/samples/loader_multiple/tests/base/meta.js +2 -2
  50. package/tests/e2e/samples/loader_multiple/tests/core/meta.js +2 -2
  51. package/tests/e2e/samples/single/.watestrc.js +5 -0
  52. package/tests/e2e/samples/single/package-lock.json +1017 -5938
  53. package/tests/e2e/samples/single/package.json +5 -2
  54. package/tests/e2e/samples/wd_mixed/{.watestrc.cjs → .watestrc.js} +1 -1
  55. package/tests/e2e/samples/wd_mixed/package-lock.json +779 -4862
  56. package/tests/e2e/samples/wd_mixed/package.json +2 -2
  57. package/tests/e2e/samples/wd_single/{.watestrc.cjs → .watestrc.js} +1 -1
  58. package/tests/e2e/samples/wd_single/package-lock.json +779 -4862
  59. package/tests/e2e/samples/wd_single/package.json +2 -2
  60. package/tests/e2e/t_folder.js +4 -6
  61. package/tests/e2e/t_loader.js +4 -6
  62. package/tests/e2e/t_loader_mixed.js +4 -6
  63. package/tests/e2e/t_loader_multiple.js +4 -6
  64. package/tests/e2e/t_loader_multiple_patterns.js +4 -6
  65. package/tests/e2e/t_single.js +4 -6
  66. package/tests/e2e/t_wd_firefox.js +4 -6
  67. package/tests/e2e/t_wd_firefox_chrome.js +4 -6
  68. package/tests/e2e/t_wd_firefox_chrome_pattern.js +4 -6
  69. package/tests/e2e/t_wd_mixed_firefox.js +4 -6
  70. package/tests/e2e/t_wd_mixed_firefox_chrome.js +4 -6
  71. package/tests/e2e/test.js +15 -16
  72. package/tests/meta.js +1 -3
  73. package/tests/series/build/t_adjust_names.js +4 -6
  74. package/tests/series/build/t_adjust_names_webdriver.js +6 -10
  75. package/tests/series/build/t_expected_failures.js +4 -6
  76. package/tests/series/build/t_loader.js +4 -6
  77. package/tests/series/build/t_loader_mixed.js +4 -6
  78. package/tests/series/build/t_mixed.js +4 -6
  79. package/tests/series/build/t_nested.js +4 -6
  80. package/tests/series/build/t_patterns_loader.js +4 -6
  81. package/tests/series/build/t_patterns_webdriver.js +4 -6
  82. package/tests/series/build/t_webdriver.js +4 -6
  83. package/tests/series/build/t_webdriver_firefox_mixed.js +4 -6
  84. package/tests/series/build/t_webdriver_nested.js +4 -6
  85. package/tests/series/build/t_webdriver_services.js +4 -6
  86. package/tests/series/generic/t_failures_info.js +9 -12
  87. package/tests/series/loader/meta.mjs +2 -2
  88. package/tests/series/logging/t_failures.js +18 -20
  89. package/tests/series/logging/t_success.js +15 -17
  90. package/tests/series/logging/t_verify.js +17 -14
  91. package/tests/series/meta.js +1 -3
  92. package/tests/series/mock_series.js +7 -13
  93. package/tests/series/perform/t_failure.js +4 -6
  94. package/tests/series/perform/t_failure_notest.js +4 -6
  95. package/tests/series/perform/t_intermittent.js +5 -7
  96. package/tests/series/perform/t_intermittent_global.js +4 -6
  97. package/tests/series/perform/t_missing_perma.js +5 -7
  98. package/tests/series/perform/t_nested.js +4 -10
  99. package/tests/series/perform/t_perma.js +4 -6
  100. package/tests/series/perform/t_success.js +5 -11
  101. package/tests/series/run/t_debunk_failure.js +7 -6
  102. package/tests/series/run/t_debunk_success.js +7 -6
  103. package/tests/series/run/t_nested.js +7 -6
  104. package/tests/series/run/t_verify.js +7 -6
  105. package/tests/series/run/t_verify_webdriver.js +7 -6
  106. package/tests/series/test.js +29 -40
  107. package/tests/webdriver/meta.js +1 -3
  108. package/tests/webdriver/t_app_driver.js +3 -5
  109. package/tests/webdriver/t_app_driver_selectors.js +3 -5
  110. package/tests/webdriver/t_attribute.js +5 -7
  111. package/tests/webdriver/t_attribute_all.js +6 -8
  112. package/tests/webdriver/t_doubleclick.js +3 -5
  113. package/tests/webdriver/t_doubleclickat.js +3 -5
  114. package/tests/webdriver/t_execute.js +4 -6
  115. package/tests/webdriver/t_if_has_elements.js +6 -8
  116. package/tests/webdriver/t_if_no_elements.js +6 -8
  117. package/tests/webdriver/t_no_elements_or_not_visible.js +7 -9
  118. package/tests/webdriver/t_properties.js +11 -13
  119. package/tests/webdriver/t_script.js +8 -10
  120. package/tests/webdriver/t_select_all.js +6 -11
  121. package/tests/webdriver/t_selection.js +4 -6
  122. package/tests/webdriver/t_text.js +12 -14
  123. package/tests/webdriver/t_text_all.js +6 -8
  124. package/tests/webdriver/test.js +32 -41
  125. package/webdriver/app_driver.js +28 -19
  126. package/webdriver/control_driver.js +4 -8
  127. package/webdriver/driver.js +64 -63
  128. package/webdriver/driver_base.js +52 -62
  129. package/webdriver/session.js +6 -11
  130. package/webdriver/util.js +7 -8
  131. package/.eslintrc.js +0 -45
  132. package/index.mjs +0 -5
  133. package/tests/e2e/samples/folder/node_modules/.package-lock.json +0 -3871
  134. package/tests/e2e/samples/loader/node_modules/.package-lock.json +0 -36
  135. package/tests/e2e/samples/loader_mixed/node_modules/.package-lock.json +0 -36
  136. package/tests/e2e/samples/loader_multiple/node_modules/.package-lock.json +0 -36
  137. package/tests/e2e/samples/single/.watestrc.cjs +0 -5
  138. package/tests/e2e/samples/single/node_modules/.package-lock.json +0 -3871
  139. package/tests/e2e/samples/wd_mixed/node_modules/.package-lock.json +0 -3586
  140. package/tests/e2e/samples/wd_single/node_modules/.package-lock.json +0 -3586
@@ -1,6 +1,4 @@
1
- 'use strict';
2
-
3
- const { do_self_tests, is_failure_output, is_ok_output } = require('./test.js');
1
+ import { do_self_tests, is_failure_output, is_ok_output } from './test.js';
4
2
 
5
3
  const snippet = `
6
4
  <html><body>
@@ -12,7 +10,7 @@ const snippet = `
12
10
  </body></html>
13
11
  `;
14
12
 
15
- module.exports.test = do_self_tests(snippet, async ({ driver }) => {
13
+ export var test = do_self_tests(snippet, async ({ driver }) => {
16
14
  // textSelected
17
15
  await is_ok_output(
18
16
  () => driver.textSelected('#selected-input', `textSelected`),
@@ -22,7 +20,7 @@ module.exports.test = do_self_tests(snippet, async ({ driver }) => {
22
20
  `Ok: textSelected`,
23
21
  ],
24
22
  [],
25
- `textSelected`
23
+ `textSelected`,
26
24
  );
27
25
 
28
26
  // textSelected:failure
@@ -37,6 +35,6 @@ module.exports.test = do_self_tests(snippet, async ({ driver }) => {
37
35
  `Failed: textSelected, timeout while waiting to meet criteria`,
38
36
  `Failed: textSelected`,
39
37
  ],
40
- `textSelected:failure`
38
+ `textSelected:failure`,
41
39
  );
42
40
  });
@@ -1,6 +1,4 @@
1
- 'use strict';
2
-
3
- const { do_self_tests, is_failure_output, is_ok_output } = require('./test.js');
1
+ import { do_self_tests, is_failure_output, is_ok_output } from './test.js';
4
2
 
5
3
  const snippet = `
6
4
  <html><body>
@@ -15,7 +13,7 @@ const snippet = `
15
13
  </body></html>
16
14
  `;
17
15
 
18
- module.exports.test = do_self_tests(snippet, async ({ driver }) => {
16
+ export var test = do_self_tests(snippet, async ({ driver }) => {
19
17
  // textIs: success
20
18
  await is_ok_output(
21
19
  () => driver.textIs('#p', 'Paragraph', `textIs`),
@@ -25,7 +23,7 @@ module.exports.test = do_self_tests(snippet, async ({ driver }) => {
25
23
  `Ok: textIs`,
26
24
  ],
27
25
  [],
28
- `textIs`
26
+ `textIs`,
29
27
  );
30
28
 
31
29
  // textIs: whitespaces
@@ -37,7 +35,7 @@ module.exports.test = do_self_tests(snippet, async ({ driver }) => {
37
35
  `Ok: textIs`,
38
36
  ],
39
37
  [],
40
- `textIs:whitespaces`
38
+ `textIs:whitespaces`,
41
39
  );
42
40
 
43
41
  // textIs: failure
@@ -50,7 +48,7 @@ module.exports.test = do_self_tests(snippet, async ({ driver }) => {
50
48
  `Failed: textIs, timeout while waiting to meet criteria`,
51
49
  `Failed: textIs`,
52
50
  ],
53
- `textIs:failure`
51
+ `textIs:failure`,
54
52
  );
55
53
 
56
54
  // textIs: ambigious
@@ -62,7 +60,7 @@ module.exports.test = do_self_tests(snippet, async ({ driver }) => {
62
60
  `Failed: textIs, ambigious 'p' selector, got 3 elements, expected 1`,
63
61
  `Failed: textIs`,
64
62
  ],
65
- `textIs:ambigious`
63
+ `textIs:ambigious`,
66
64
  );
67
65
 
68
66
  // textIs: no elements
@@ -74,7 +72,7 @@ module.exports.test = do_self_tests(snippet, async ({ driver }) => {
74
72
  `Failed: textIs, no elements matching '#p-not-exists' selector`,
75
73
  `Failed: textIs`,
76
74
  ],
77
- `textIs:noelements`
75
+ `textIs:noelements`,
78
76
  );
79
77
 
80
78
  // textIs: input
@@ -86,7 +84,7 @@ module.exports.test = do_self_tests(snippet, async ({ driver }) => {
86
84
  `Ok: textIs`,
87
85
  ],
88
86
  [],
89
- `textIs:input`
87
+ `textIs:input`,
90
88
  );
91
89
 
92
90
  // textIs: textarea
@@ -98,7 +96,7 @@ module.exports.test = do_self_tests(snippet, async ({ driver }) => {
98
96
  `Ok: textIs`,
99
97
  ],
100
98
  [],
101
- `textIs:textarea`
99
+ `textIs:textarea`,
102
100
  );
103
101
 
104
102
  // textStartsWith: success
@@ -110,7 +108,7 @@ module.exports.test = do_self_tests(snippet, async ({ driver }) => {
110
108
  `Ok: textStartsWith`,
111
109
  ],
112
110
  [],
113
- `textStartsWith`
111
+ `textStartsWith`,
114
112
  );
115
113
 
116
114
  // textStartsWith: failure
@@ -123,7 +121,7 @@ module.exports.test = do_self_tests(snippet, async ({ driver }) => {
123
121
  `Failed: textStartsWith, timeout while waiting to meet criteria`,
124
122
  `Failed: textStartsWith`,
125
123
  ],
126
- `textStartsWith:failure`
124
+ `textStartsWith:failure`,
127
125
  );
128
126
 
129
127
  // textEmpty: success
@@ -135,6 +133,6 @@ module.exports.test = do_self_tests(snippet, async ({ driver }) => {
135
133
  `Ok: textEmpty`,
136
134
  ],
137
135
  [],
138
- `textEmpty`
136
+ `textEmpty`,
139
137
  );
140
138
  });
@@ -1,6 +1,4 @@
1
- 'use strict';
2
-
3
- const { do_self_tests, is_failure_output, is_ok_output } = require('./test.js');
1
+ import { do_self_tests, is_failure_output, is_ok_output } from './test.js';
4
2
 
5
3
  const snippet = `
6
4
  <html><body>
@@ -9,7 +7,7 @@ const snippet = `
9
7
  </body></html>
10
8
  `;
11
9
 
12
- module.exports.test = do_self_tests(snippet, async ({ driver }) => {
10
+ export var test = do_self_tests(snippet, async ({ driver }) => {
13
11
  // textIs: success
14
12
  await is_ok_output(
15
13
  () => driver.textIsAll('p', ['Paragraph', 'Maragraph'], `textIsAll`),
@@ -19,7 +17,7 @@ module.exports.test = do_self_tests(snippet, async ({ driver }) => {
19
17
  `Ok: textIsAll`,
20
18
  ],
21
19
  [],
22
- `textIsAll:success`
20
+ `textIsAll:success`,
23
21
  );
24
22
 
25
23
  // textIs: failure
@@ -33,7 +31,7 @@ module.exports.test = do_self_tests(snippet, async ({ driver }) => {
33
31
  `Failed: textIsAll, timeout while waiting to meet criteria`,
34
32
  `Failed: textIsAll`,
35
33
  ],
36
- `textIsAll:failure`
34
+ `textIsAll:failure`,
37
35
  );
38
36
 
39
37
  // textIs: ambigious
@@ -45,7 +43,7 @@ module.exports.test = do_self_tests(snippet, async ({ driver }) => {
45
43
  `Failed: textIsAll, ambigious 'p' selector, got 2 elements, expected 1`,
46
44
  `Failed: textIsAll`,
47
45
  ],
48
- `textIsAll:ambigious`
46
+ `textIsAll:ambigious`,
49
47
  );
50
48
 
51
49
  // textIs: no elements
@@ -57,6 +55,6 @@ module.exports.test = do_self_tests(snippet, async ({ driver }) => {
57
55
  `Failed: textIsAll, no elements matching '#p-not-exists' selector`,
58
56
  `Failed: textIsAll`,
59
57
  ],
60
- `textIsAll:noelements`
58
+ `textIsAll:noelements`,
61
59
  );
62
60
  });
@@ -1,40 +1,9 @@
1
- 'use strict';
1
+ import { is_output } from '../../core/base.js';
2
+ import { testflow, fail } from '../../core/core.js';
3
+ import { scope } from '../../webdriver/session.js';
4
+ import { TestExecutionError } from '../../webdriver/driver_base.js';
2
5
 
3
- const testflow = require('../../core/core.js');
4
- const { fail, core } = testflow;
5
-
6
- const { is_output } = require('../../core/base.js');
7
- const { scope } = require('../../webdriver/session.js');
8
- const { TestExecutionError } = require('../../webdriver/driver_base.js');
9
-
10
- const scripts = [
11
- '../../core/core.js',
12
- '../../core/base.js',
13
- '../../webdriver/app_driver.js',
14
- '../../webdriver/control_driver.js',
15
- ];
16
- for (let script of scripts) {
17
- let script_exports = require(script);
18
- for (let e in script_exports) {
19
- module.exports[e] = script_exports[e];
20
- }
21
- }
22
-
23
- module.exports.do_self_tests = (snippet, test) =>
24
- scope(snippet, async session => {
25
- session.driver.screenshot_disabled = true;
26
-
27
- // Set ~0 timeout to make failing test failing snappy. Hacky but works.
28
- const defaultTimeout = core.getTimeout();
29
- core.setTimeout(0.001);
30
-
31
- try {
32
- await test(session);
33
- } finally {
34
- // Restore timeout
35
- core.setTimeout(defaultTimeout);
36
- }
37
- });
6
+ const reducedTimeout = 0.001;
38
7
 
39
8
  const eat_ok = func => async () => {
40
9
  try {
@@ -47,7 +16,7 @@ const eat_ok = func => async () => {
47
16
 
48
17
  const eat_failure = func => async () => {
49
18
  try {
50
- testflow.lock();
19
+ testflow.lock({ timeout: reducedTimeout });
51
20
  await func();
52
21
  testflow.unlock();
53
22
  fail(`No test failure`);
@@ -59,11 +28,33 @@ const eat_failure = func => async () => {
59
28
  }
60
29
  };
61
30
 
62
- module.exports.is_ok_output = (func, out, err, msg) => {
31
+ export * from '../../core/core.js';
32
+ export * from '../../core/base.js';
33
+ export * from '../../webdriver/app_driver.js';
34
+ export * from '../../webdriver/control_driver.js';
35
+
36
+ export function do_self_tests(snippet, test) {
37
+ return scope(snippet, async session => {
38
+ session.driver.screenshot_disabled = true;
39
+
40
+ // Set ~0 timeout to make failing test failing snappy. Hacky but works.
41
+ const defaultTimeout = testflow.core.getTimeout();
42
+ testflow.core.setTimeout(reducedTimeout);
43
+
44
+ try {
45
+ await test(session);
46
+ } finally {
47
+ // Restore timeout
48
+ testflow.core.setTimeout(defaultTimeout);
49
+ }
50
+ });
51
+ }
52
+
53
+ export function is_ok_output(func, out, err, msg) {
63
54
  return is_output(eat_ok(func), out, err, msg);
64
- };
55
+ }
65
56
 
66
- module.exports.is_failure_output = (driver, func, out, err, msg) => {
57
+ export function is_failure_output(driver, func, out, err, msg) {
67
58
  // Tests in Firefox are running in a child process, which doesn't use stderr.
68
59
  if (driver.firefox) {
69
60
  out.push(...err);
@@ -71,4 +62,4 @@ module.exports.is_failure_output = (driver, func, out, err, msg) => {
71
62
  }
72
63
  out.push(`Sleeping for 1 ms`);
73
64
  return is_output(eat_failure(func), out, err, msg);
74
- };
65
+ }
@@ -1,7 +1,5 @@
1
- 'use strict';
2
-
3
- const { define_class_promise } = require('./util.js');
4
- const { assert } = require('../core/core.js');
1
+ import { define_class_promise } from './util.js';
2
+ import { assert } from '../core/core.js';
5
3
 
6
4
  /**
7
5
  * A bass class used to create chainable application drivers.
@@ -38,8 +36,8 @@ class AppDriver {
38
36
  return this.chain(() =>
39
37
  this.action(`Get ${this.uiname}`).elementVisible(
40
38
  this.Self,
41
- `${this.uiname} is shown`
42
- )
39
+ `${this.uiname} is shown`,
40
+ ),
43
41
  );
44
42
  }
45
43
 
@@ -67,7 +65,7 @@ class AppDriver {
67
65
  assert(typeof link == 'function', `Only function can be chained`);
68
66
  return new this.constructor.CtorPromise(
69
67
  this.p.then(link),
70
- Object.assign({}, this.properties, properties || {})
68
+ Object.assign({}, this.properties, properties || {}),
71
69
  );
72
70
  }
73
71
 
@@ -78,7 +76,7 @@ class AppDriver {
78
76
  .elementFocused(selector, 'Focused')
79
77
  .selectAll(selector, `Select all text`)
80
78
  .sendKeys(selector, value, `Type into ${field}`)
81
- .textIs(selector, value, `Check ${field} text`)
79
+ .textIs(selector, value, `Check ${field} text`),
82
80
  );
83
81
  }
84
82
 
@@ -86,7 +84,7 @@ class AppDriver {
86
84
  return this.chain(() =>
87
85
  this.action(`${this.uiname}.clear ${field}`)
88
86
  .clear(selector, `Clear text`)
89
- .textIs(selector, '', `Check ${field} text`)
87
+ .textIs(selector, '', `Check ${field} text`),
90
88
  );
91
89
  }
92
90
 
@@ -94,7 +92,7 @@ class AppDriver {
94
92
  return this.chain(() =>
95
93
  this.action(`${this.uiname}.setValue for ${field}`)
96
94
  .setValue(selector, value, `Set value property for ${field}`)
97
- .textIs(selector, value, `Check ${field} text`)
95
+ .textIs(selector, value, `Check ${field} text`),
98
96
  );
99
97
  }
100
98
 
@@ -102,7 +100,7 @@ class AppDriver {
102
100
  return this.chain(() =>
103
101
  this.action(`${this.uiname}.check ${field}`)
104
102
  .click(selector, `Click at ${field}`)
105
- .hasElements(`${selector}:checked`, `${field} should be checked`)
103
+ .hasElements(`${selector}:checked`, `${field} should be checked`),
106
104
  );
107
105
  }
108
106
 
@@ -112,8 +110,21 @@ class AppDriver {
112
110
  .click(selector, `Click at ${field}`)
113
111
  .hasElements(
114
112
  `${selector}:not(:checked)`,
115
- `${field} should be unchecked`
116
- )
113
+ `${field} should be unchecked`,
114
+ ),
115
+ );
116
+ }
117
+
118
+ select(selectSelector, optionSelector, optionValue, field) {
119
+ return this.chain(() =>
120
+ this.action(`${this.uiname}.select '${optionValue}' into ${field}`)
121
+ .click(selectSelector, `Open ${field} select`)
122
+ .click(optionSelector, `Select '${optionValue}' in ${field}`)
123
+ .textIs(
124
+ selectSelector,
125
+ optionValue,
126
+ `Check '${optionValue}' option selected in ${field}`,
127
+ ),
117
128
  );
118
129
  }
119
130
 
@@ -121,14 +132,14 @@ class AppDriver {
121
132
  return this.chain(() =>
122
133
  this.action(`${this.uiname}.execute ${descr}`).executeScript(
123
134
  script,
124
- `Execute script`
125
- )
135
+ `Execute script`,
136
+ ),
126
137
  );
127
138
  }
128
139
 
129
140
  screenshot(msg) {
130
141
  return this.chain(() =>
131
- this.action(`${this.uiname}.screenshot for ${msg}`).screenshot()
142
+ this.action(`${this.uiname}.screenshot for ${msg}`).screenshot(),
132
143
  );
133
144
  }
134
145
 
@@ -185,6 +196,4 @@ class AppDriver {
185
196
  }
186
197
  }
187
198
 
188
- module.exports = {
189
- AppDriver,
190
- };
199
+ export { AppDriver };
@@ -1,7 +1,5 @@
1
- 'use strict';
2
-
3
- const { assert } = require('../core/core.js');
4
- const { AppDriver } = require('./app_driver.js');
1
+ import { assert } from '../core/core.js';
2
+ import { AppDriver } from './app_driver.js';
5
3
 
6
4
  /**
7
5
  * Control driver base.
@@ -14,7 +12,7 @@ class ControlDriver extends AppDriver {
14
12
  session,
15
13
  selector,
16
14
  },
17
- p
15
+ p,
18
16
  );
19
17
  }
20
18
 
@@ -27,6 +25,4 @@ class ControlDriver extends AppDriver {
27
25
  }
28
26
  }
29
27
 
30
- module.exports = {
31
- ControlDriver,
32
- };
28
+ export { ControlDriver };