@applitools/driver 1.2.4 → 1.3.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.
- package/CHANGELOG.md +17 -0
- package/dist/driver.js +7 -2
- package/package.json +10 -5
- package/types/context.d.ts +70 -0
- package/types/driver.d.ts +61 -0
- package/types/element.d.ts +55 -0
- package/types/fake/mock-driver.d.ts +71 -0
- package/types/fake/spec-driver.d.ts +40 -0
- package/types/index.d.ts +5 -0
- package/types/user-agent.d.ts +12 -0
- package/types/utils.d.ts +11 -0
- package/.bongo/dry-run/package-lock.json +0 -30
- package/.bongo/dry-run.tgz +0 -0
- package/.eslintrc +0 -36
- package/src/context.ts +0 -519
- package/src/driver.ts +0 -452
- package/src/element.ts +0 -502
- package/src/fake/mock-driver.d.ts +0 -3
- package/src/fake/mock-driver.js +0 -355
- package/src/fake/spec-driver.d.ts +0 -11
- package/src/fake/spec-driver.js +0 -66
- package/src/index.ts +0 -6
- package/src/user-agent.ts +0 -99
- package/src/utils.ts +0 -77
- package/test/unit/context.spec.ts +0 -243
- package/test/unit/driver.spec.ts +0 -482
- package/test/unit/user-agent.spec.d.ts +0 -1
- package/tsconfig.json +0 -24
|
@@ -1,243 +0,0 @@
|
|
|
1
|
-
import assert from 'assert'
|
|
2
|
-
import {Driver, Context, MockDriver, fake} from '../../src/index'
|
|
3
|
-
|
|
4
|
-
describe('context', () => {
|
|
5
|
-
let mock: MockDriver,
|
|
6
|
-
driver: Driver<fake.Driver, fake.Context, fake.Element, fake.Selector>,
|
|
7
|
-
context: Context<fake.Driver, fake.Context, fake.Element, fake.Selector>
|
|
8
|
-
const logger = {log: () => null as any, warn: () => null as any, error: () => null as any}
|
|
9
|
-
|
|
10
|
-
beforeEach(() => {
|
|
11
|
-
mock = new MockDriver()
|
|
12
|
-
mock.mockElements([
|
|
13
|
-
{
|
|
14
|
-
selector: 'element-scroll',
|
|
15
|
-
scrollPosition: {x: 21, y: 22},
|
|
16
|
-
children: [
|
|
17
|
-
{
|
|
18
|
-
selector: 'frame1',
|
|
19
|
-
frame: true,
|
|
20
|
-
children: [
|
|
21
|
-
{
|
|
22
|
-
selector: 'frame1-1',
|
|
23
|
-
frame: true,
|
|
24
|
-
rect: {x: 1, y: 2, width: 101, height: 102},
|
|
25
|
-
children: [{selector: 'frame1-1--element1', name: 'element within frame'}],
|
|
26
|
-
},
|
|
27
|
-
],
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
selector: 'frame2',
|
|
31
|
-
frame: true,
|
|
32
|
-
children: [{selector: 'frame2--element1'}],
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
selector: 'shadow1',
|
|
36
|
-
shadow: true,
|
|
37
|
-
children: [
|
|
38
|
-
{selector: 'shadow1--element1'},
|
|
39
|
-
{
|
|
40
|
-
selector: 'shadow1-1',
|
|
41
|
-
shadow: true,
|
|
42
|
-
children: [{selector: 'shadow1-1--element1', name: 'element within shadow'}],
|
|
43
|
-
},
|
|
44
|
-
],
|
|
45
|
-
},
|
|
46
|
-
],
|
|
47
|
-
},
|
|
48
|
-
])
|
|
49
|
-
driver = new Driver({logger, spec: fake.spec, driver: mock})
|
|
50
|
-
context = driver.currentContext
|
|
51
|
-
})
|
|
52
|
-
|
|
53
|
-
it('constructor(logger, context, {driver})', async () => {
|
|
54
|
-
assert.ok(context.isMain)
|
|
55
|
-
assert.ok(context.target)
|
|
56
|
-
})
|
|
57
|
-
|
|
58
|
-
it('context(element)', async () => {
|
|
59
|
-
const element = await mock.findElement('frame1')
|
|
60
|
-
const childContext = await context.context(element)
|
|
61
|
-
|
|
62
|
-
assert.strictEqual(childContext.parent, context)
|
|
63
|
-
assert.strictEqual(childContext.main, context)
|
|
64
|
-
})
|
|
65
|
-
|
|
66
|
-
it('init()', async () => {
|
|
67
|
-
const childContext1 = await context.context('frame1')
|
|
68
|
-
const childContext11 = await childContext1.context('frame1-1')
|
|
69
|
-
await childContext11.init()
|
|
70
|
-
|
|
71
|
-
assert.strictEqual((await childContext1.getContextElement()).target.selector, 'frame1')
|
|
72
|
-
assert.strictEqual((await childContext11.getContextElement()).target.selector, 'frame1-1')
|
|
73
|
-
assert.strictEqual(driver.currentContext, childContext1)
|
|
74
|
-
})
|
|
75
|
-
|
|
76
|
-
it('focus()', async () => {
|
|
77
|
-
const childContext1 = await context.context('frame1')
|
|
78
|
-
const childContext11 = await childContext1.context('frame1-1')
|
|
79
|
-
await childContext11.focus()
|
|
80
|
-
|
|
81
|
-
assert.strictEqual(driver.currentContext, childContext11)
|
|
82
|
-
})
|
|
83
|
-
|
|
84
|
-
it('element(selector)', async () => {
|
|
85
|
-
const childContext1 = await context.context('frame1')
|
|
86
|
-
const childContext11 = await childContext1.context('frame1-1')
|
|
87
|
-
await childContext11.focus()
|
|
88
|
-
const element = await childContext11.element('frame1-1--element1')
|
|
89
|
-
|
|
90
|
-
assert.strictEqual(element.target.name, 'element within frame')
|
|
91
|
-
})
|
|
92
|
-
|
|
93
|
-
it('element(shadow-selector)', async () => {
|
|
94
|
-
const element = await context.element({
|
|
95
|
-
selector: 'shadow1',
|
|
96
|
-
shadow: {selector: 'shadow1-1', shadow: {selector: 'shadow1-1--element1'}},
|
|
97
|
-
})
|
|
98
|
-
assert.deepStrictEqual(element.target.name, 'element within shadow')
|
|
99
|
-
})
|
|
100
|
-
|
|
101
|
-
it('element(frame-selector)', async () => {
|
|
102
|
-
const element = await context.element({
|
|
103
|
-
selector: 'frame1',
|
|
104
|
-
frame: {selector: 'frame1-1', frame: {selector: 'frame1-1--element1'}},
|
|
105
|
-
})
|
|
106
|
-
assert.deepStrictEqual(element.target.name, 'element within frame')
|
|
107
|
-
})
|
|
108
|
-
|
|
109
|
-
it('element(non-existent)', async () => {
|
|
110
|
-
const element = await context.element('non-existent')
|
|
111
|
-
|
|
112
|
-
assert.strictEqual(element, null)
|
|
113
|
-
})
|
|
114
|
-
|
|
115
|
-
it('element(non-existent-shadow)', async () => {
|
|
116
|
-
const element = await context.element({
|
|
117
|
-
selector: 'shadow1',
|
|
118
|
-
shadow: {selector: 'shadow1-non-existent', shadow: {selector: 'shadow1-non-existent--element1'}},
|
|
119
|
-
})
|
|
120
|
-
|
|
121
|
-
assert.strictEqual(element, null)
|
|
122
|
-
})
|
|
123
|
-
|
|
124
|
-
it('element(non-existent-frame)', async () => {
|
|
125
|
-
const element = await context.element({
|
|
126
|
-
selector: 'frame1',
|
|
127
|
-
frame: {selector: 'frame1-non-existent', frame: {selector: 'frame1-non-existent--element1'}},
|
|
128
|
-
})
|
|
129
|
-
|
|
130
|
-
assert.strictEqual(element, null)
|
|
131
|
-
})
|
|
132
|
-
|
|
133
|
-
it('elements(selector)', async () => {
|
|
134
|
-
const childContext1 = await context.context('frame1')
|
|
135
|
-
const childContext11 = await childContext1.context('frame1-1')
|
|
136
|
-
await childContext11.focus()
|
|
137
|
-
const elements = await childContext11.elements('frame1-1--element1')
|
|
138
|
-
|
|
139
|
-
assert.ok(Array.isArray(elements))
|
|
140
|
-
assert.strictEqual(elements.length, 1)
|
|
141
|
-
assert.strictEqual(elements[0].target.name, 'element within frame')
|
|
142
|
-
})
|
|
143
|
-
|
|
144
|
-
it('elements(shadow-selector)', async () => {
|
|
145
|
-
const elements = await context.elements({
|
|
146
|
-
selector: 'shadow1',
|
|
147
|
-
shadow: {selector: 'shadow1-1', shadow: {selector: 'shadow1-1--element1'}},
|
|
148
|
-
})
|
|
149
|
-
|
|
150
|
-
assert.ok(Array.isArray(elements))
|
|
151
|
-
assert.strictEqual(elements.length, 1)
|
|
152
|
-
assert.strictEqual(elements[0].target.name, 'element within shadow')
|
|
153
|
-
})
|
|
154
|
-
|
|
155
|
-
it('elements(shadow-selector)', async () => {
|
|
156
|
-
const elements = await context.elements({
|
|
157
|
-
selector: 'frame1',
|
|
158
|
-
frame: {selector: 'frame1-1', frame: {selector: 'frame1-1--element1'}},
|
|
159
|
-
})
|
|
160
|
-
|
|
161
|
-
assert.ok(Array.isArray(elements))
|
|
162
|
-
assert.strictEqual(elements.length, 1)
|
|
163
|
-
assert.strictEqual(elements[0].target.name, 'element within frame')
|
|
164
|
-
})
|
|
165
|
-
|
|
166
|
-
it('elements(non-existent)', async () => {
|
|
167
|
-
const elements = await context.elements('non-existent')
|
|
168
|
-
|
|
169
|
-
assert.ok(Array.isArray(elements))
|
|
170
|
-
assert.strictEqual(elements.length, 0)
|
|
171
|
-
})
|
|
172
|
-
|
|
173
|
-
it('elements(non-existent-shadow)', async () => {
|
|
174
|
-
const elements = await context.elements({
|
|
175
|
-
selector: 'shadow1',
|
|
176
|
-
shadow: {selector: 'shadow1-non-existent', shadow: {selector: 'shadow1-non-existent--element1'}},
|
|
177
|
-
})
|
|
178
|
-
|
|
179
|
-
assert.ok(Array.isArray(elements))
|
|
180
|
-
assert.strictEqual(elements.length, 0)
|
|
181
|
-
})
|
|
182
|
-
|
|
183
|
-
it('elements(non-existent-frame)', async () => {
|
|
184
|
-
const elements = await context.elements({
|
|
185
|
-
selector: 'frame1',
|
|
186
|
-
frame: {selector: 'frame1-non-existent', frame: {selector: 'frame1-non-existent--element1'}},
|
|
187
|
-
})
|
|
188
|
-
|
|
189
|
-
assert.ok(Array.isArray(elements))
|
|
190
|
-
assert.strictEqual(elements.length, 0)
|
|
191
|
-
})
|
|
192
|
-
|
|
193
|
-
it('getContextElement()', async () => {
|
|
194
|
-
const mainContext = context
|
|
195
|
-
const childContext = await context.context('frame1')
|
|
196
|
-
|
|
197
|
-
assert.strictEqual(await mainContext.getContextElement(), null)
|
|
198
|
-
assert.strictEqual((await childContext.getContextElement()).target.selector, 'frame1')
|
|
199
|
-
})
|
|
200
|
-
|
|
201
|
-
it('getScrollingElement()', async () => {
|
|
202
|
-
const mainContext = context
|
|
203
|
-
await mainContext.setScrollingElement(await mock.findElement('element-scroll'))
|
|
204
|
-
const childContext = await context.context('frame1')
|
|
205
|
-
|
|
206
|
-
assert.strictEqual((await mainContext.getScrollingElement()).target.selector, 'element-scroll')
|
|
207
|
-
assert.strictEqual((await childContext.getScrollingElement()).target.selector, 'html')
|
|
208
|
-
})
|
|
209
|
-
|
|
210
|
-
it('getClientRect()', async () => {
|
|
211
|
-
const childContext1 = await context.context('frame1')
|
|
212
|
-
const childContext11 = await childContext1.context('frame1-1')
|
|
213
|
-
await childContext11.init()
|
|
214
|
-
|
|
215
|
-
const rectContext11 = await childContext11.getClientRegion()
|
|
216
|
-
assert.deepStrictEqual(rectContext11, {
|
|
217
|
-
x: 1,
|
|
218
|
-
y: 2,
|
|
219
|
-
width: 101,
|
|
220
|
-
height: 102,
|
|
221
|
-
})
|
|
222
|
-
assert.strictEqual(driver.currentContext, childContext11.parent)
|
|
223
|
-
|
|
224
|
-
const rectContext1 = await childContext1.getClientRegion()
|
|
225
|
-
assert.deepStrictEqual(rectContext1, {
|
|
226
|
-
x: 0,
|
|
227
|
-
y: 0,
|
|
228
|
-
width: 100,
|
|
229
|
-
height: 100,
|
|
230
|
-
})
|
|
231
|
-
assert.strictEqual(driver.currentContext, childContext11.parent)
|
|
232
|
-
})
|
|
233
|
-
|
|
234
|
-
it('getLocationInViewport()', async () => {
|
|
235
|
-
await context.setScrollingElement('element-scroll')
|
|
236
|
-
const childContext1 = await context.context('frame1')
|
|
237
|
-
const childContext11 = await childContext1.context('frame1-1')
|
|
238
|
-
await childContext11.focus()
|
|
239
|
-
|
|
240
|
-
const locationContext11 = await childContext11.getLocationInViewport()
|
|
241
|
-
assert.deepStrictEqual(locationContext11, {x: -20, y: -20})
|
|
242
|
-
})
|
|
243
|
-
})
|