expect-webdriverio 5.3.3 → 5.3.4

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 (81) hide show
  1. package/lib/{tsconfig.tsbuildinfo → tsconfig.build.tsbuildinfo} +1 -1
  2. package/package.json +2 -2
  3. package/types/expect-webdriverio.d.ts +27 -38
  4. package/types/standalone.d.ts +0 -2
  5. package/lib/test/__fixtures__/utils.js +0 -19
  6. package/lib/test/index.test.js +0 -8
  7. package/lib/test/matchers/beMatchers.test.js +0 -109
  8. package/lib/test/matchers/browser/toHaveClipboardText.test.js +0 -21
  9. package/lib/test/matchers/browserMatchers.test.js +0 -102
  10. package/lib/test/matchers/element/toBeDisabled.test.js +0 -121
  11. package/lib/test/matchers/element/toHaveAttribute.test.js +0 -131
  12. package/lib/test/matchers/element/toHaveChildren.test.js +0 -62
  13. package/lib/test/matchers/element/toHaveComputedLabel.test.js +0 -284
  14. package/lib/test/matchers/element/toHaveComputedRole.test.js +0 -284
  15. package/lib/test/matchers/element/toHaveElementClass.test.js +0 -125
  16. package/lib/test/matchers/element/toHaveElementProperty.test.js +0 -111
  17. package/lib/test/matchers/element/toHaveHTML.test.js +0 -291
  18. package/lib/test/matchers/element/toHaveHeight.test.js +0 -171
  19. package/lib/test/matchers/element/toHaveHref.test.js +0 -54
  20. package/lib/test/matchers/element/toHaveId.test.js +0 -54
  21. package/lib/test/matchers/element/toHaveSize.test.js +0 -109
  22. package/lib/test/matchers/element/toHaveStyle.test.js +0 -199
  23. package/lib/test/matchers/element/toHaveText.test.js +0 -333
  24. package/lib/test/matchers/element/toHaveValue.test.js +0 -81
  25. package/lib/test/matchers/element/toHaveWidth.test.js +0 -171
  26. package/lib/test/matchers/elements/toBeElementsArrayOfSize.test.js +0 -141
  27. package/lib/test/matchers/mock/toBeRequested.test.js +0 -73
  28. package/lib/test/matchers/mock/toBeRequestedTimes.test.js +0 -108
  29. package/lib/test/matchers/mock/toBeRequestedWith.test.js +0 -343
  30. package/lib/test/matchers.test.js +0 -54
  31. package/lib/test/snapshot.test.js +0 -53
  32. package/lib/test/softAssertions.test.js +0 -332
  33. package/lib/test/util/elementsUtil.test.js +0 -18
  34. package/lib/test/util/formatMessage.test.js +0 -96
  35. package/lib/test/util/refetchElements.test.js +0 -19
  36. package/lib/test/utils.test.js +0 -117
  37. /package/lib/{src/constants.js → constants.js} +0 -0
  38. /package/lib/{src/index.js → index.js} +0 -0
  39. /package/lib/{src/jasmineUtils.js → jasmineUtils.js} +0 -0
  40. /package/lib/{src/matchers → matchers}/browser/toHaveClipboardText.js +0 -0
  41. /package/lib/{src/matchers → matchers}/browser/toHaveTitle.js +0 -0
  42. /package/lib/{src/matchers → matchers}/browser/toHaveUrl.js +0 -0
  43. /package/lib/{src/matchers → matchers}/element/toBeClickable.js +0 -0
  44. /package/lib/{src/matchers → matchers}/element/toBeDisabled.js +0 -0
  45. /package/lib/{src/matchers → matchers}/element/toBeDisplayed.js +0 -0
  46. /package/lib/{src/matchers → matchers}/element/toBeDisplayedInViewport.js +0 -0
  47. /package/lib/{src/matchers → matchers}/element/toBeEnabled.js +0 -0
  48. /package/lib/{src/matchers → matchers}/element/toBeExisting.js +0 -0
  49. /package/lib/{src/matchers → matchers}/element/toBeFocused.js +0 -0
  50. /package/lib/{src/matchers → matchers}/element/toBeSelected.js +0 -0
  51. /package/lib/{src/matchers → matchers}/element/toHaveAttribute.js +0 -0
  52. /package/lib/{src/matchers → matchers}/element/toHaveChildren.js +0 -0
  53. /package/lib/{src/matchers → matchers}/element/toHaveClass.js +0 -0
  54. /package/lib/{src/matchers → matchers}/element/toHaveComputedLabel.js +0 -0
  55. /package/lib/{src/matchers → matchers}/element/toHaveComputedRole.js +0 -0
  56. /package/lib/{src/matchers → matchers}/element/toHaveElementProperty.js +0 -0
  57. /package/lib/{src/matchers → matchers}/element/toHaveHTML.js +0 -0
  58. /package/lib/{src/matchers → matchers}/element/toHaveHeight.js +0 -0
  59. /package/lib/{src/matchers → matchers}/element/toHaveHref.js +0 -0
  60. /package/lib/{src/matchers → matchers}/element/toHaveId.js +0 -0
  61. /package/lib/{src/matchers → matchers}/element/toHaveSize.js +0 -0
  62. /package/lib/{src/matchers → matchers}/element/toHaveStyle.js +0 -0
  63. /package/lib/{src/matchers → matchers}/element/toHaveText.js +0 -0
  64. /package/lib/{src/matchers → matchers}/element/toHaveValue.js +0 -0
  65. /package/lib/{src/matchers → matchers}/element/toHaveWidth.js +0 -0
  66. /package/lib/{src/matchers → matchers}/elements/toBeElementsArrayOfSize.js +0 -0
  67. /package/lib/{src/matchers → matchers}/mock/toBeRequested.js +0 -0
  68. /package/lib/{src/matchers → matchers}/mock/toBeRequestedTimes.js +0 -0
  69. /package/lib/{src/matchers → matchers}/mock/toBeRequestedWith.js +0 -0
  70. /package/lib/{src/matchers → matchers}/snapshot.js +0 -0
  71. /package/lib/{src/matchers.js → matchers.js} +0 -0
  72. /package/lib/{src/snapshot.js → snapshot.js} +0 -0
  73. /package/lib/{src/softAssert.js → softAssert.js} +0 -0
  74. /package/lib/{src/softAssertService.js → softAssertService.js} +0 -0
  75. /package/lib/{src/softExpect.js → softExpect.js} +0 -0
  76. /package/lib/{src/types.js → types.js} +0 -0
  77. /package/lib/{src/util → util}/elementsUtil.js +0 -0
  78. /package/lib/{src/util → util}/executeCommand.js +0 -0
  79. /package/lib/{src/util → util}/formatMessage.js +0 -0
  80. /package/lib/{src/util → util}/refetchElements.js +0 -0
  81. /package/lib/{src/utils.js → utils.js} +0 -0
@@ -1,131 +0,0 @@
1
- import { vi, test, describe, expect, beforeEach } from 'vitest';
2
- import { $ } from '@wdio/globals';
3
- import { getExpectMessage, getExpected, getReceived } from '../../__fixtures__/utils.js';
4
- import { toHaveAttribute } from '../../../src/matchers/element/toHaveAttribute.js';
5
- vi.mock('@wdio/globals');
6
- describe('toHaveAttribute', () => {
7
- let el;
8
- beforeEach(async () => {
9
- el = await $('sel');
10
- });
11
- describe('attribute exists', () => {
12
- test('success when present', async () => {
13
- const beforeAssertion = vi.fn();
14
- const afterAssertion = vi.fn();
15
- el.getAttribute = vi.fn().mockImplementation(() => {
16
- return 'Correct Value';
17
- });
18
- const result = await toHaveAttribute.call({}, el, 'attribute_name', undefined, { beforeAssertion, afterAssertion });
19
- expect(result.pass).toBe(true);
20
- expect(beforeAssertion).toBeCalledWith({
21
- matcherName: 'toHaveAttribute',
22
- expectedValue: ['attribute_name', undefined],
23
- options: { beforeAssertion, afterAssertion }
24
- });
25
- expect(afterAssertion).toBeCalledWith({
26
- matcherName: 'toHaveAttribute',
27
- expectedValue: ['attribute_name', undefined],
28
- options: { beforeAssertion, afterAssertion },
29
- result
30
- });
31
- });
32
- test('failure when not present', async () => {
33
- el.getAttribute = vi.fn().mockImplementation(() => {
34
- return null;
35
- });
36
- const result = await toHaveAttribute.call({}, el, 'attribute_name');
37
- expect(result.pass).toBe(false);
38
- });
39
- describe('message shows correctly', () => {
40
- let result;
41
- beforeEach(async () => {
42
- el.getAttribute = vi.fn().mockImplementation(() => {
43
- return null;
44
- });
45
- result = await toHaveAttribute.call({}, el, 'attribute_name');
46
- });
47
- test('expect message', () => {
48
- expect(getExpectMessage(result.message())).toContain('to have attribute');
49
- });
50
- test('expected message', () => {
51
- expect(getExpected(result.message())).toContain('true');
52
- });
53
- test('received message', () => {
54
- expect(getReceived(result.message())).toContain('false');
55
- });
56
- });
57
- });
58
- describe('attribute has value', () => {
59
- test('success with correct value', async () => {
60
- el.getAttribute = vi.fn().mockImplementation(() => {
61
- return 'Correct Value';
62
- });
63
- const result = await toHaveAttribute.call({}, el, 'attribute_name', 'Correct Value', { ignoreCase: true });
64
- expect(result.pass).toBe(true);
65
- });
66
- test('success with RegExp and correct value', async () => {
67
- el.getAttribute = vi.fn().mockImplementation(() => {
68
- return 'Correct Value';
69
- });
70
- const result = await toHaveAttribute.call({}, el, 'attribute_name', /cOrReCt VaLuE/i);
71
- expect(result.pass).toBe(true);
72
- });
73
- test('failure with wrong value', async () => {
74
- el.getAttribute = vi.fn().mockImplementation(() => {
75
- return 'Wrong Value';
76
- });
77
- const result = await toHaveAttribute.call({}, el, 'attribute_name', 'Correct Value', { ignoreCase: true });
78
- expect(result.pass).toBe(false);
79
- });
80
- test('failure with non-string attribute value as actual', async () => {
81
- el.getAttribute = vi.fn().mockImplementation(() => {
82
- return 123;
83
- });
84
- const result = await toHaveAttribute.call({}, el, 'attribute_name', 'Correct Value', { ignoreCase: true });
85
- expect(result.pass).toBe(false);
86
- });
87
- test('failure with non-string attribute value as expected', async () => {
88
- el.getAttribute = vi.fn().mockImplementation(() => {
89
- return 'Correct Value';
90
- });
91
- const result = await toHaveAttribute.call({}, el, 'attribute_name', 123, { ignoreCase: true });
92
- expect(result.pass).toBe(false);
93
- });
94
- describe('message shows correctly', () => {
95
- let result;
96
- beforeEach(async () => {
97
- el.getAttribute = vi.fn().mockImplementation(() => {
98
- return 'Wrong';
99
- });
100
- result = await toHaveAttribute.call({}, el, 'attribute_name', 'Correct');
101
- });
102
- test('expect message', () => {
103
- expect(getExpectMessage(result.message())).toContain('to have attribute');
104
- });
105
- test('expected message', () => {
106
- expect(getExpected(result.message())).toContain('Correct');
107
- });
108
- test('received message', () => {
109
- expect(getReceived(result.message())).toContain('Wrong');
110
- });
111
- });
112
- describe('failure with RegExp, message shows correctly', () => {
113
- let result;
114
- beforeEach(async () => {
115
- el.getAttribute = vi.fn().mockImplementation(() => {
116
- return 'Wrong';
117
- });
118
- result = await toHaveAttribute.call({}, el, 'attribute_name', /WDIO/);
119
- });
120
- test('expect message', () => {
121
- expect(getExpectMessage(result.message())).toContain('to have attribute');
122
- });
123
- test('expected message', () => {
124
- expect(getExpected(result.message())).toContain('/WDIO/');
125
- });
126
- test('received message', () => {
127
- expect(getReceived(result.message())).toContain('Wrong');
128
- });
129
- });
130
- });
131
- });
@@ -1,62 +0,0 @@
1
- import { vi, test, describe, expect } from 'vitest';
2
- import { $ } from '@wdio/globals';
3
- import { toHaveChildren } from '../../../src/matchers/element/toHaveChildren.js';
4
- vi.mock('@wdio/globals');
5
- describe('toHaveChildren', () => {
6
- test('no value', async () => {
7
- const beforeAssertion = vi.fn();
8
- const afterAssertion = vi.fn();
9
- const el = await $('sel');
10
- const result = await toHaveChildren.call({}, el, undefined, { wait: 0, beforeAssertion, afterAssertion });
11
- expect(result.pass).toBe(true);
12
- expect(beforeAssertion).toBeCalledWith({
13
- matcherName: 'toHaveChildren',
14
- options: { wait: 0, beforeAssertion, afterAssertion }
15
- });
16
- expect(afterAssertion).toBeCalledWith({
17
- matcherName: 'toHaveChildren',
18
- options: { wait: 0, beforeAssertion, afterAssertion },
19
- result
20
- });
21
- });
22
- test('If no options passed in + children exists', async () => {
23
- const el = await $('sel');
24
- const result = await toHaveChildren.call({}, el, {});
25
- expect(result.pass).toBe(true);
26
- });
27
- test('exact number value', async () => {
28
- const el = await $('sel');
29
- const result = await toHaveChildren.call({}, el, 2, { wait: 1 });
30
- expect(result.pass).toBe(true);
31
- });
32
- test('exact value', async () => {
33
- const el = await $('sel');
34
- const result = await toHaveChildren.call({}, el, { eq: 2, wait: 1 });
35
- expect(result.pass).toBe(true);
36
- });
37
- test('gte value', async () => {
38
- const el = await $('sel');
39
- const result = await toHaveChildren.call({}, el, { gte: 2, wait: 1 });
40
- expect(result.pass).toBe(true);
41
- });
42
- test('exact value - failure', async () => {
43
- const el = await $('sel');
44
- const result = await toHaveChildren.call({}, el, { eq: 3, wait: 1 });
45
- expect(result.pass).toBe(false);
46
- });
47
- test('lte value - failure', async () => {
48
- const el = await $('sel');
49
- const result = await toHaveChildren.call({}, el, { lte: 1, wait: 0 });
50
- expect(result.pass).toBe(false);
51
- });
52
- test('.not exact value - failure', async () => {
53
- const el = await $('sel');
54
- const result = await toHaveChildren.bind({ isNot: true })(el, { eq: 2, wait: 0 });
55
- expect(result.pass).toBe(true);
56
- });
57
- test('.not exact value - success', async () => {
58
- const el = await $('sel');
59
- const result = await toHaveChildren.bind({ isNot: true })(el, { eq: 3, wait: 1 });
60
- expect(result.pass).toBe(false);
61
- });
62
- });
@@ -1,284 +0,0 @@
1
- import { vi, test, describe, expect, beforeEach } from 'vitest';
2
- import { $ } from '@wdio/globals';
3
- import { getExpectMessage, getReceived, getExpected } from '../../__fixtures__/utils.js';
4
- import { toHaveComputedLabel } from '../../../src/matchers/element/toHaveComputedLabel.js';
5
- vi.mock('@wdio/globals');
6
- describe('toHaveComputedLabel', () => {
7
- test('wait for success', async () => {
8
- const el = await $('sel');
9
- el._attempts = 2;
10
- el._computed_label = function () {
11
- if (this._attempts > 0) {
12
- this._attempts--;
13
- return '';
14
- }
15
- return 'WebdriverIO';
16
- };
17
- const beforeAssertion = vi.fn();
18
- const afterAssertion = vi.fn();
19
- const result = await toHaveComputedLabel.call({}, el, 'WebdriverIO', { ignoreCase: true, beforeAssertion, afterAssertion });
20
- expect(result.pass).toBe(true);
21
- expect(el._attempts).toBe(0);
22
- expect(beforeAssertion).toBeCalledWith({
23
- matcherName: 'toHaveComputedLabel',
24
- expectedValue: 'WebdriverIO',
25
- options: { ignoreCase: true, beforeAssertion, afterAssertion }
26
- });
27
- expect(afterAssertion).toBeCalledWith({
28
- matcherName: 'toHaveComputedLabel',
29
- expectedValue: 'WebdriverIO',
30
- options: { ignoreCase: true, beforeAssertion, afterAssertion },
31
- result
32
- });
33
- });
34
- test('wait but failure', async () => {
35
- const el = await $('sel');
36
- el._computed_label = function () {
37
- throw new Error('some error');
38
- };
39
- await expect(() => toHaveComputedLabel.call({}, el, 'WebdriverIO', { ignoreCase: true }))
40
- .rejects.toThrow('some error');
41
- });
42
- test('success on the first attempt', async () => {
43
- const el = await $('sel');
44
- el._attempts = 0;
45
- el._computed_label = function () {
46
- this._attempts++;
47
- return 'WebdriverIO';
48
- };
49
- const result = await toHaveComputedLabel.call({}, el, 'WebdriverIO', { ignoreCase: true });
50
- expect(result.pass).toBe(true);
51
- expect(el._attempts).toBe(1);
52
- });
53
- test('no wait - failure', async () => {
54
- const el = await $('sel');
55
- el._attempts = 0;
56
- el._computed_label = function () {
57
- this._attempts++;
58
- return 'WebdriverIO';
59
- };
60
- const result = await toHaveComputedLabel.call({}, el, 'foo', { wait: 0 });
61
- expect(result.pass).toBe(false);
62
- expect(el._attempts).toBe(1);
63
- });
64
- test('no wait - success', async () => {
65
- const el = await $('sel');
66
- el._attempts = 0;
67
- el._computed_label = function () {
68
- this._attempts++;
69
- return 'WebdriverIO';
70
- };
71
- const result = await toHaveComputedLabel.call({}, el, 'WebdriverIO', { wait: 0 });
72
- expect(result.pass).toBe(true);
73
- expect(el._attempts).toBe(1);
74
- });
75
- test('not - failure', async () => {
76
- const el = await $('sel');
77
- el._computed_label = function () {
78
- return 'WebdriverIO';
79
- };
80
- const result = await toHaveComputedLabel.call({ isNot: true }, el, 'WebdriverIO', { wait: 0 });
81
- const received = getReceived(result.message());
82
- expect(received).not.toContain('not');
83
- expect(result.pass).toBe(true);
84
- });
85
- test("should return false if computed labels don't match", async () => {
86
- const el = await $('sel');
87
- el._computed_label = function () {
88
- return 'WebdriverIO';
89
- };
90
- const result = await toHaveComputedLabel.bind({ isNot: true })(el, 'foobar', { wait: 1 });
91
- expect(result.pass).toBe(false);
92
- });
93
- test('should return true if computed labels match', async () => {
94
- const el = await $('sel');
95
- el._computed_label = function () {
96
- return 'WebdriverIO';
97
- };
98
- const result = await toHaveComputedLabel.bind({ isNot: true })(el, 'WebdriverIO', { wait: 1 });
99
- expect(result.pass).toBe(true);
100
- });
101
- test('should return true if actual computed label + single replacer matches the expected computed label', async () => {
102
- const el = await $('sel');
103
- el._computed_label = function () {
104
- return 'WebdriverIO';
105
- };
106
- const result = await toHaveComputedLabel.bind({})(el, 'BrowserdriverIO', {
107
- replace: ['Web', 'Browser'],
108
- });
109
- expect(result.pass).toBe(true);
110
- });
111
- test('should return true if actual computed label + replace (string) matches the expected computed label', async () => {
112
- const el = await $('sel');
113
- el._computed_label = function () {
114
- return 'WebdriverIO';
115
- };
116
- const result = await toHaveComputedLabel.bind({})(el, 'BrowserdriverIO', {
117
- replace: [['Web', 'Browser']],
118
- });
119
- expect(result.pass).toBe(true);
120
- });
121
- test('should return true if actual computed label + replace (regex) matches the expected computed label', async () => {
122
- const el = await $('sel');
123
- el._computed_label = function () {
124
- return 'WebdriverIO';
125
- };
126
- const result = await toHaveComputedLabel.bind({})(el, 'BrowserdriverIO', {
127
- replace: [[/Web/, 'Browser']],
128
- });
129
- expect(result.pass).toBe(true);
130
- });
131
- test('should return true if actual computed label starts with expected computed label', async () => {
132
- const el = await $('sel');
133
- el._computed_label = function () {
134
- return 'WebdriverIO';
135
- };
136
- const result = await toHaveComputedLabel.bind({})(el, 'Webd', { atStart: true });
137
- expect(result.pass).toBe(true);
138
- });
139
- test('should return true if actual computed label ends with expected computed label', async () => {
140
- const el = await $('sel');
141
- el._computed_label = function () {
142
- return 'WebdriverIO';
143
- };
144
- const result = await toHaveComputedLabel.bind({})(el, 'erIO', { atEnd: true });
145
- expect(result.pass).toBe(true);
146
- });
147
- test('should return true if actual computed label contains the expected computed label at the given index', async () => {
148
- const el = await $('sel');
149
- el._computed_label = function () {
150
- return 'WebdriverIO';
151
- };
152
- const result = await toHaveComputedLabel.bind({})(el, 'iver', { atIndex: 5 });
153
- expect(result.pass).toBe(true);
154
- });
155
- test('message', async () => {
156
- const el = await $('sel');
157
- el._computed_label = function () {
158
- return '';
159
- };
160
- const result = await toHaveComputedLabel.call({}, el, 'WebdriverIO');
161
- expect(getExpectMessage(result.message())).toContain('to have computed label');
162
- });
163
- test('success if array matches with computed label and ignoreCase', async () => {
164
- const el = await $('sel');
165
- el._attempts = 0;
166
- el._computed_label = function () {
167
- this._attempts++;
168
- return 'WebdriverIO';
169
- };
170
- const result = await toHaveComputedLabel.call({}, el, ['div', 'WebdriverIO'], { ignoreCase: true });
171
- expect(result.pass).toBe(true);
172
- expect(el._attempts).toBe(1);
173
- });
174
- test('success if array matches with computed label and trim', async () => {
175
- const el = await $('sel');
176
- el._attempts = 0;
177
- el._computed_label = function () {
178
- this._attempts++;
179
- return ' WebdriverIO ';
180
- };
181
- const result = await toHaveComputedLabel.call({}, el, ['div', 'WebdriverIO', 'toto'], {
182
- trim: true,
183
- });
184
- expect(result.pass).toBe(true);
185
- expect(el._attempts).toBe(1);
186
- });
187
- test('success if array matches with computed label and replace (string)', async () => {
188
- const el = await $('sel');
189
- el._attempts = 0;
190
- el._computed_label = function () {
191
- this._attempts++;
192
- return 'WebdriverIO';
193
- };
194
- const result = await toHaveComputedLabel.call({}, el, ['div', 'BrowserdriverIO', 'toto'], {
195
- replace: [['Web', 'Browser']],
196
- });
197
- expect(result.pass).toBe(true);
198
- expect(el._attempts).toBe(1);
199
- });
200
- test('success if array matches with computed label and replace (regex)', async () => {
201
- const el = await $('sel');
202
- el._attempts = 0;
203
- el._computed_label = function () {
204
- this._attempts++;
205
- return 'WebdriverIO';
206
- };
207
- const result = await toHaveComputedLabel.call({}, el, ['div', 'BrowserdriverIO', 'toto'], {
208
- replace: [[/Web/g, 'Browser']],
209
- });
210
- expect(result.pass).toBe(true);
211
- expect(el._attempts).toBe(1);
212
- });
213
- test('success if array matches with computed label and multiple replacers and one of the replacers is a function', async () => {
214
- const el = await $('sel');
215
- el._attempts = 0;
216
- el._computed_label = function () {
217
- this._attempts++;
218
- return 'WebdriverIO';
219
- };
220
- const result = await toHaveComputedLabel.call({}, el, ['div', 'browserdriverio', 'toto'], {
221
- replace: [
222
- [/Web/g, 'Browser'],
223
- [/[A-Z]/g, (match) => match.toLowerCase()],
224
- ],
225
- });
226
- expect(result.pass).toBe(true);
227
- expect(el._attempts).toBe(1);
228
- });
229
- test('failure if array does not match with computed label', async () => {
230
- const el = await $('sel');
231
- el._attempts = 0;
232
- el._computed_label = function () {
233
- this._attempts++;
234
- return 'WebdriverIO';
235
- };
236
- const result = await toHaveComputedLabel.call({}, el, ['div', 'foo'], { wait: 1 });
237
- expect(result.pass).toBe(false);
238
- expect(el._attempts).toBe(1);
239
- });
240
- describe('with RegExp', () => {
241
- let el;
242
- beforeEach(async () => {
243
- el = await $('sel');
244
- el._computed_label = vi.fn().mockImplementation(() => {
245
- return 'This is example computed label';
246
- });
247
- });
248
- test('success if match', async () => {
249
- const result = await toHaveComputedLabel.call({}, el, /ExAmplE/i);
250
- expect(result.pass).toBe(true);
251
- });
252
- test('success if array matches with RegExp', async () => {
253
- const result = await toHaveComputedLabel.call({}, el, ['div', /ExAmPlE/i]);
254
- expect(result.pass).toBe(true);
255
- });
256
- test('success if array matches with computed label', async () => {
257
- const result = await toHaveComputedLabel.call({}, el, [
258
- 'This is example computed label',
259
- /Webdriver/i,
260
- ]);
261
- expect(result.pass).toBe(true);
262
- });
263
- test('success if array matches with computed label and ignoreCase', async () => {
264
- const result = await toHaveComputedLabel.call({}, el, ['ThIs Is ExAmPlE computed label', /Webdriver/i], {
265
- ignoreCase: true,
266
- });
267
- expect(result.pass).toBe(true);
268
- });
269
- test('failure if no match', async () => {
270
- const result = await toHaveComputedLabel.call({}, el, /Webdriver/i);
271
- expect(result.pass).toBe(false);
272
- expect(getExpectMessage(result.message())).toContain('to have computed label');
273
- expect(getExpected(result.message())).toContain('/Webdriver/i');
274
- expect(getReceived(result.message())).toContain('This is example computed label');
275
- });
276
- test('failure if array does not match with computed label', async () => {
277
- const result = await toHaveComputedLabel.call({}, el, ['div', /Webdriver/i]);
278
- expect(result.pass).toBe(false);
279
- expect(getExpectMessage(result.message())).toContain('to have computed label');
280
- expect(getExpected(result.message())).toContain('/Webdriver/i');
281
- expect(getExpected(result.message())).toContain('div');
282
- });
283
- });
284
- });