ui5-test-runner 1.1.5 → 2.0.0

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 (93) hide show
  1. package/README.md +32 -188
  2. package/index.js +47 -16
  3. package/package.json +28 -10
  4. package/src/add-test-pages.js +35 -0
  5. package/src/add-test-pages.spec.js +95 -0
  6. package/src/browser.spec.js +724 -0
  7. package/src/browsers.js +220 -59
  8. package/src/capabilities/index.js +194 -0
  9. package/src/capabilities/tests/basic/iframe.html +8 -0
  10. package/src/capabilities/tests/basic/index.html +12 -0
  11. package/src/capabilities/tests/basic/index.js +20 -0
  12. package/src/capabilities/tests/basic/ui5.html +24 -0
  13. package/src/capabilities/tests/dynamic-include/index.js +21 -0
  14. package/src/capabilities/tests/dynamic-include/mix.html +11 -0
  15. package/src/capabilities/tests/dynamic-include/one.html +11 -0
  16. package/src/capabilities/tests/dynamic-include/post.js +3 -0
  17. package/src/capabilities/tests/dynamic-include/test.js +1 -0
  18. package/src/capabilities/tests/dynamic-include/two.html +11 -0
  19. package/src/capabilities/tests/index.js +16 -0
  20. package/src/capabilities/tests/local-storage/index.html +16 -0
  21. package/src/capabilities/tests/local-storage/index.js +21 -0
  22. package/src/capabilities/tests/screenshot/index.html +13 -0
  23. package/src/capabilities/tests/screenshot/index.js +18 -0
  24. package/src/capabilities/tests/scripts/index.js +50 -0
  25. package/src/capabilities/tests/scripts/qunit.html +22 -0
  26. package/src/capabilities/tests/scripts/testsuite.html +10 -0
  27. package/src/capabilities/tests/scripts/testsuite.js +8 -0
  28. package/src/capabilities/tests/timeout/index.html +21 -0
  29. package/src/capabilities/tests/timeout/index.js +19 -0
  30. package/src/capabilities/tests/traces/index.html +18 -0
  31. package/src/capabilities/tests/traces/index.js +81 -0
  32. package/src/cors.js +1 -1
  33. package/src/cors.spec.js +41 -0
  34. package/src/coverage.js +30 -18
  35. package/src/coverage.spec.js +79 -0
  36. package/src/csv-reader.js +36 -0
  37. package/src/csv-reader.spec.js +42 -0
  38. package/src/csv-writer.js +52 -0
  39. package/src/csv-writer.spec.js +77 -0
  40. package/src/defaults/browser.js +144 -0
  41. package/src/defaults/jsdom/compatibility.js +95 -0
  42. package/src/defaults/jsdom/debug.js +23 -0
  43. package/src/defaults/jsdom/resource-loader.js +43 -0
  44. package/src/defaults/jsdom/sap.ui.test.matchers.visible.js +39 -0
  45. package/src/defaults/jsdom.js +64 -0
  46. package/src/defaults/junit-xml-report.js +64 -0
  47. package/src/defaults/puppeteer.js +111 -0
  48. package/src/defaults/report/common.js +38 -0
  49. package/src/defaults/report/default.html +84 -0
  50. package/src/defaults/report/main.js +44 -0
  51. package/src/defaults/report/progress.js +49 -0
  52. package/src/defaults/report/styles.css +66 -0
  53. package/src/defaults/report.js +69 -0
  54. package/src/defaults/selenium-webdriver/chrome.js +38 -0
  55. package/src/defaults/selenium-webdriver/edge.js +25 -0
  56. package/src/defaults/selenium-webdriver/firefox.js +31 -0
  57. package/src/defaults/selenium-webdriver.js +138 -0
  58. package/src/endpoints.js +70 -124
  59. package/src/error.js +52 -0
  60. package/src/error.spec.js +17 -0
  61. package/src/get-job-progress.js +69 -0
  62. package/src/get-job-progress.spec.js +175 -0
  63. package/src/inject/post.js +96 -0
  64. package/src/inject/post.spec.js +147 -0
  65. package/src/inject/qunit-hooks.js +6 -21
  66. package/src/inject/qunit-intercept.js +30 -0
  67. package/src/inject/qunit-redirect.js +15 -7
  68. package/src/job-mode.js +45 -0
  69. package/src/job.js +254 -108
  70. package/src/job.spec.js +413 -0
  71. package/src/npm.js +73 -0
  72. package/src/npm.spec.js +98 -0
  73. package/src/options.js +73 -0
  74. package/src/options.spec.js +125 -0
  75. package/src/output.js +450 -131
  76. package/src/qunit-hooks.js +116 -0
  77. package/src/qunit-hooks.spec.js +687 -0
  78. package/src/report.js +42 -0
  79. package/src/reserve.js +3 -4
  80. package/src/simulate.spec.js +437 -0
  81. package/src/symbols.js +8 -0
  82. package/src/tests.js +127 -84
  83. package/src/timeout.spec.js +39 -0
  84. package/src/tools.js +111 -4
  85. package/src/tools.spec.js +90 -0
  86. package/src/ui5.js +3 -3
  87. package/src/unhandled.js +6 -6
  88. package/src/unhandled.spec.js +63 -0
  89. package/defaults/chromium.js +0 -62
  90. package/src/progress.html +0 -71
  91. package/src/proxies.js +0 -8
  92. package/src/report.html +0 -202
  93. /package/{defaults → src/defaults}/nyc.json +0 -0
@@ -0,0 +1,125 @@
1
+ const { any, boolean, integer, timeout, url, arrayOf } = require('./options')
2
+ const { InvalidArgumentError } = require('commander')
3
+
4
+ function checkType ({ method, validValues, invalidValues }) {
5
+ describe(method.name, () => {
6
+ if (Array.isArray(validValues)) {
7
+ validValues = validValues.reduce((map, validValue) => {
8
+ map[validValue] = validValue
9
+ return map
10
+ }, {})
11
+ }
12
+ Object.keys(validValues).forEach(validValue => {
13
+ const expectedValue = validValues[validValue]
14
+ it(`accepts ${JSON.stringify(validValue)}`, () => {
15
+ expect(method(validValue)).toBe(expectedValue)
16
+ })
17
+ })
18
+ invalidValues.forEach(invalidValue => {
19
+ it(`rejects ${JSON.stringify(invalidValue)}`, () => {
20
+ expect(() => method(invalidValue)).toThrowError(InvalidArgumentError)
21
+ })
22
+ })
23
+ })
24
+ }
25
+
26
+ describe('src/options', () => {
27
+ checkType({
28
+ method: any,
29
+ validValues: {
30
+ true: 'true',
31
+ 123: '123'
32
+ },
33
+ invalidValues: [
34
+ ]
35
+ })
36
+
37
+ checkType({
38
+ method: boolean,
39
+ validValues: {
40
+ true: true,
41
+ yes: true,
42
+ on: true,
43
+ false: false,
44
+ no: false,
45
+ off: false
46
+ },
47
+ invalidValues: [
48
+ '',
49
+ 'anything'
50
+ ]
51
+ })
52
+
53
+ describe('boolean (invert)', () => {
54
+ it('inverts default value (false)', () => {
55
+ expect(boolean(undefined, false)).toBe(true)
56
+ })
57
+
58
+ it('inverts default value (true)', () => {
59
+ expect(boolean(undefined, true)).toBe(false)
60
+ })
61
+ })
62
+
63
+ checkType({
64
+ method: integer,
65
+ validValues: {
66
+ 0: 0,
67
+ 1: 1,
68
+ 10: 10,
69
+ 100: 100,
70
+ 1000: 1000,
71
+ 10000: 10000
72
+ },
73
+ invalidValues: [
74
+ '',
75
+ '-1',
76
+ '-10000',
77
+ 'abc'
78
+ ]
79
+ })
80
+
81
+ checkType({
82
+ method: timeout,
83
+ validValues: {
84
+ 0: 0,
85
+ 1: 1,
86
+ 10: 10,
87
+ 100: 100,
88
+ 1000: 1000,
89
+ 10000: 10000,
90
+ '10ms': 10,
91
+ '10s': 10000,
92
+ '10sec': 10000,
93
+ '10m': 600000,
94
+ '10min': 600000
95
+ },
96
+ invalidValues: [
97
+ '',
98
+ '1abc',
99
+ '1msec',
100
+ '1mins'
101
+ ]
102
+ })
103
+
104
+ checkType({
105
+ method: url,
106
+ validValues: [
107
+ 'https://ui5.sap.com/test-resources/sap/m/demokit/orderbrowser/webapp/test/testsuite.qunit.html',
108
+ 'http://localhost:8085/test.html?a=b'
109
+ ],
110
+ invalidValues: [
111
+ '',
112
+ '-1',
113
+ 'abc',
114
+ 'ftp://server.com/path'
115
+ ]
116
+ })
117
+
118
+ describe('arrayOf', () => {
119
+ it('builds a type validator that aggregates validated values in an array', () => {
120
+ const validator = arrayOf(integer)
121
+ const value = validator('2', validator('1'))
122
+ expect(value).toStrictEqual([1, 2])
123
+ })
124
+ })
125
+ })