@applitools/driver 1.2.5 → 1.3.1
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 +24 -0
- package/dist/capabilities.js +54 -0
- package/dist/context.js +7 -0
- package/dist/driver.js +43 -15
- package/dist/element.js +10 -2
- package/dist/fake/index.js +25 -0
- package/dist/fake/mock-driver.js +7 -2
- package/dist/fake/spec-driver.js +103 -65
- package/dist/index.js +0 -15
- package/package.json +20 -9
- package/types/capabilities.d.ts +4 -0
- package/types/context.d.ts +71 -0
- package/types/driver.d.ts +62 -0
- package/types/element.d.ts +55 -0
- package/types/fake/index.d.ts +3 -0
- package/types/fake/mock-driver.d.ts +35 -0
- package/types/fake/spec-driver.d.ts +29 -0
- package/types/index.d.ts +3 -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 -456
- 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
package/test/unit/driver.spec.ts
DELETED
|
@@ -1,482 +0,0 @@
|
|
|
1
|
-
import assert from 'assert'
|
|
2
|
-
import {Driver, MockDriver, fake} from '../../src/index'
|
|
3
|
-
|
|
4
|
-
const logger = {log: () => null as any, warn: () => null as any, error: () => null as any}
|
|
5
|
-
|
|
6
|
-
describe('driver', () => {
|
|
7
|
-
let mock: MockDriver, driver: Driver<fake.Driver, fake.Context, fake.Element, fake.Selector>
|
|
8
|
-
|
|
9
|
-
before(async () => {
|
|
10
|
-
mock = new MockDriver()
|
|
11
|
-
mock.mockElements([
|
|
12
|
-
{selector: 'frame0', frame: true},
|
|
13
|
-
{
|
|
14
|
-
selector: 'frame1',
|
|
15
|
-
frame: true,
|
|
16
|
-
isCORS: true,
|
|
17
|
-
children: [
|
|
18
|
-
{selector: 'frame1-0', frame: true, isCORS: true},
|
|
19
|
-
{selector: 'frame1-1', frame: true},
|
|
20
|
-
{selector: 'frame1-2', frame: true, isCORS: true},
|
|
21
|
-
],
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
selector: 'frame2',
|
|
25
|
-
frame: true,
|
|
26
|
-
isCORS: true,
|
|
27
|
-
children: [
|
|
28
|
-
{selector: 'frame2-0', frame: true, isCORS: true},
|
|
29
|
-
{
|
|
30
|
-
selector: 'frame2-1',
|
|
31
|
-
frame: true,
|
|
32
|
-
isCORS: true,
|
|
33
|
-
children: [
|
|
34
|
-
{selector: 'frame2-1-0', frame: true, isCORS: true},
|
|
35
|
-
{selector: 'frame2-1-1', frame: true},
|
|
36
|
-
{selector: 'frame2-1-2', frame: true, isCORS: true},
|
|
37
|
-
],
|
|
38
|
-
},
|
|
39
|
-
{selector: 'frame2-2', frame: true},
|
|
40
|
-
],
|
|
41
|
-
},
|
|
42
|
-
])
|
|
43
|
-
driver = new Driver({logger, spec: fake.spec, driver: mock})
|
|
44
|
-
await driver.init()
|
|
45
|
-
})
|
|
46
|
-
|
|
47
|
-
afterEach(async () => {
|
|
48
|
-
await driver.switchToMainContext()
|
|
49
|
-
})
|
|
50
|
-
|
|
51
|
-
it('getTitle()', async () => {
|
|
52
|
-
assert.strictEqual(await driver.getTitle(), 'Default Page Title')
|
|
53
|
-
})
|
|
54
|
-
|
|
55
|
-
it('getUrl()', async () => {
|
|
56
|
-
assert.strictEqual(await driver.getUrl(), 'http://default.url')
|
|
57
|
-
})
|
|
58
|
-
|
|
59
|
-
it('switchToChildContext(element)', async () => {
|
|
60
|
-
const frameElement = await mock.findElement('frame0')
|
|
61
|
-
await driver.switchToChildContext(frameElement)
|
|
62
|
-
assert.strictEqual(driver.currentContext.path.length, 2)
|
|
63
|
-
assert.ok(await driver.currentContext.equals(frameElement))
|
|
64
|
-
})
|
|
65
|
-
|
|
66
|
-
it('switchToChildContext(eyes-element)', async () => {
|
|
67
|
-
const frameElement = await driver.element('frame0')
|
|
68
|
-
await driver.switchToChildContext(frameElement)
|
|
69
|
-
assert.strictEqual(driver.currentContext.path.length, 2)
|
|
70
|
-
assert.ok(await driver.currentContext.equals(frameElement))
|
|
71
|
-
})
|
|
72
|
-
|
|
73
|
-
it('switchToMainContext()', async () => {
|
|
74
|
-
const mainContextDocument = await driver.element('html')
|
|
75
|
-
await driver.switchToChildContext('frame0')
|
|
76
|
-
await driver.switchToMainContext()
|
|
77
|
-
assert.strictEqual(driver.currentContext, driver.mainContext)
|
|
78
|
-
const currentContextDocument = await driver.element('html')
|
|
79
|
-
assert.ok(await mainContextDocument.equals(currentContextDocument))
|
|
80
|
-
})
|
|
81
|
-
|
|
82
|
-
it('switchToParentContext()', async () => {
|
|
83
|
-
const mainContextDocument = await driver.element('html')
|
|
84
|
-
await driver.switchToChildContext('frame1')
|
|
85
|
-
const nestedContextDocument = await driver.element('html')
|
|
86
|
-
await driver.switchToChildContext('frame1-1')
|
|
87
|
-
assert.strictEqual(driver.currentContext.path.length, 3)
|
|
88
|
-
|
|
89
|
-
await driver.switchToParentContext()
|
|
90
|
-
assert.strictEqual(driver.currentContext.path.length, 2)
|
|
91
|
-
const parentContextDocument = await driver.element('html')
|
|
92
|
-
assert.ok(await parentContextDocument.equals(nestedContextDocument))
|
|
93
|
-
|
|
94
|
-
await driver.switchToParentContext()
|
|
95
|
-
assert.strictEqual(driver.currentContext, driver.mainContext)
|
|
96
|
-
const grandparentContextDocument = await driver.element('html')
|
|
97
|
-
assert.ok(await grandparentContextDocument.equals(mainContextDocument))
|
|
98
|
-
})
|
|
99
|
-
|
|
100
|
-
it('switchTo(context)', async () => {
|
|
101
|
-
const contextDocuments = []
|
|
102
|
-
contextDocuments.unshift(await driver.element('html'))
|
|
103
|
-
for (const frameSelector of ['frame2', 'frame2-1', 'frame2-1-0']) {
|
|
104
|
-
await driver.switchToChildContext(frameSelector)
|
|
105
|
-
contextDocuments.unshift(await driver.element('html'))
|
|
106
|
-
}
|
|
107
|
-
assert.strictEqual(driver.currentContext.path.length, 4)
|
|
108
|
-
const requiredContext = driver.currentContext
|
|
109
|
-
|
|
110
|
-
await driver.switchToMainContext()
|
|
111
|
-
assert.strictEqual(driver.currentContext, driver.mainContext)
|
|
112
|
-
|
|
113
|
-
await driver.switchTo(requiredContext)
|
|
114
|
-
assert.strictEqual(driver.currentContext, driver.currentContext)
|
|
115
|
-
|
|
116
|
-
for (const contextDocument of contextDocuments) {
|
|
117
|
-
const currentDocument = await driver.element('html')
|
|
118
|
-
assert.ok(await currentDocument.equals(contextDocument))
|
|
119
|
-
await driver.switchToParentContext()
|
|
120
|
-
}
|
|
121
|
-
})
|
|
122
|
-
|
|
123
|
-
describe('refreshContexts()', () => {
|
|
124
|
-
afterEach(async () => {
|
|
125
|
-
await driver.switchToMainContext()
|
|
126
|
-
})
|
|
127
|
-
|
|
128
|
-
it('untracked same origin frame chain [(0-0)?]', () => {
|
|
129
|
-
return untrackedFrameChainSameOrigin()
|
|
130
|
-
})
|
|
131
|
-
|
|
132
|
-
it('untracked cors frame chain [(0-1-2)?]', () => {
|
|
133
|
-
return untrackedCorsFrameChain()
|
|
134
|
-
})
|
|
135
|
-
|
|
136
|
-
it('untracked mixed frame chain [(0-1-0)?]', () => {
|
|
137
|
-
return untrackedMixedFrameChain1()
|
|
138
|
-
})
|
|
139
|
-
|
|
140
|
-
it('untracked mixed frame chain [(0-1-1)?]', () => {
|
|
141
|
-
return untrackedMixedFrameChain2()
|
|
142
|
-
})
|
|
143
|
-
|
|
144
|
-
it('partially tracked frame chain [0-2-1-(2)?]', () => {
|
|
145
|
-
return partiallyTrackedFrameChain1()
|
|
146
|
-
})
|
|
147
|
-
|
|
148
|
-
it('partially tracked frame chain [(0-2)?-1-2]', () => {
|
|
149
|
-
return partiallyTrackedFrameChain2()
|
|
150
|
-
})
|
|
151
|
-
|
|
152
|
-
it('tracked frame chain [0-2-1-2]', () => {
|
|
153
|
-
return trackedFrameChain()
|
|
154
|
-
})
|
|
155
|
-
})
|
|
156
|
-
|
|
157
|
-
describe('refreshContexts() when parentContext not implemented', () => {
|
|
158
|
-
before(() => {
|
|
159
|
-
// unable to deep clone driver object atm
|
|
160
|
-
// @ts-ignore
|
|
161
|
-
delete driver._spec.parentContext
|
|
162
|
-
})
|
|
163
|
-
|
|
164
|
-
afterEach(async () => {
|
|
165
|
-
await driver.switchToMainContext()
|
|
166
|
-
})
|
|
167
|
-
|
|
168
|
-
it('untracked same origin frame chain [(0-0)?]', () => {
|
|
169
|
-
return untrackedFrameChainSameOrigin()
|
|
170
|
-
})
|
|
171
|
-
|
|
172
|
-
it('untracked cors frame chain [(0-1-2)?]', () => {
|
|
173
|
-
return untrackedCorsFrameChain()
|
|
174
|
-
})
|
|
175
|
-
|
|
176
|
-
it('untracked mixed frame chain [(0-1-0)?]', () => {
|
|
177
|
-
return untrackedMixedFrameChain1()
|
|
178
|
-
})
|
|
179
|
-
|
|
180
|
-
it('untracked mixed frame chain [(0-1-1)?]', () => {
|
|
181
|
-
return untrackedMixedFrameChain2()
|
|
182
|
-
})
|
|
183
|
-
|
|
184
|
-
it('partially tracked frame chain [0-2-1-(2)?]', () => {
|
|
185
|
-
return partiallyTrackedFrameChain1()
|
|
186
|
-
})
|
|
187
|
-
|
|
188
|
-
it('partially tracked frame chain [(0-2)?-1-2]', () => {
|
|
189
|
-
return partiallyTrackedFrameChain2()
|
|
190
|
-
})
|
|
191
|
-
|
|
192
|
-
it('tracked frame chain [0-2-1-2]', () => {
|
|
193
|
-
return trackedFrameChain()
|
|
194
|
-
})
|
|
195
|
-
})
|
|
196
|
-
|
|
197
|
-
async function untrackedFrameChainSameOrigin() {
|
|
198
|
-
const frameElements = [null] as any[]
|
|
199
|
-
const frameElement = await mock.findElement('frame0')
|
|
200
|
-
frameElements.push(frameElement)
|
|
201
|
-
await mock.switchToFrame(frameElement)
|
|
202
|
-
assert.strictEqual(driver.mainContext, driver.currentContext)
|
|
203
|
-
await driver.refreshContexts()
|
|
204
|
-
const contextPath = driver.currentContext.path
|
|
205
|
-
assert.strictEqual(contextPath.length, frameElements.length)
|
|
206
|
-
for (const frameIndex of frameElements.keys()) {
|
|
207
|
-
assert.ok(await contextPath[frameIndex].equals(frameElements[frameIndex]))
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
async function untrackedCorsFrameChain() {
|
|
212
|
-
const frameElements = [null] as any[]
|
|
213
|
-
const frameElement1 = await mock.findElement('frame1')
|
|
214
|
-
frameElements.push(frameElement1)
|
|
215
|
-
await mock.switchToFrame(frameElement1)
|
|
216
|
-
const frameElement2 = await mock.findElement('frame1-2')
|
|
217
|
-
frameElements.push(frameElement2)
|
|
218
|
-
await mock.switchToFrame(frameElement2)
|
|
219
|
-
assert.strictEqual(driver.mainContext, driver.currentContext)
|
|
220
|
-
await driver.refreshContexts()
|
|
221
|
-
const contextPath = driver.currentContext.path
|
|
222
|
-
assert.strictEqual(contextPath.length, frameElements.length)
|
|
223
|
-
for (const frameIndex of frameElements.keys()) {
|
|
224
|
-
assert.ok(await contextPath[frameIndex].equals(frameElements[frameIndex]))
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
async function untrackedMixedFrameChain1() {
|
|
229
|
-
const frameElements = [null] as any[]
|
|
230
|
-
const frameElement1 = await mock.findElement('frame1')
|
|
231
|
-
frameElements.push(frameElement1)
|
|
232
|
-
await mock.switchToFrame(frameElement1)
|
|
233
|
-
const frameElement0 = await mock.findElement('frame1-0')
|
|
234
|
-
frameElements.push(frameElement0)
|
|
235
|
-
await mock.switchToFrame(frameElement0)
|
|
236
|
-
assert.strictEqual(driver.mainContext, driver.currentContext)
|
|
237
|
-
await driver.refreshContexts()
|
|
238
|
-
const contextPath = driver.currentContext.path
|
|
239
|
-
assert.strictEqual(contextPath.length, frameElements.length)
|
|
240
|
-
for (const frameIndex of frameElements.keys()) {
|
|
241
|
-
assert.ok(await contextPath[frameIndex].equals(frameElements[frameIndex]))
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
async function untrackedMixedFrameChain2() {
|
|
246
|
-
const frameElements = [null] as any[]
|
|
247
|
-
const frameElement1 = await mock.findElement('frame1')
|
|
248
|
-
frameElements.push(frameElement1)
|
|
249
|
-
await mock.switchToFrame(frameElement1)
|
|
250
|
-
const frameElement11 = await mock.findElement('frame1-1')
|
|
251
|
-
frameElements.push(frameElement11)
|
|
252
|
-
await mock.switchToFrame(frameElement11)
|
|
253
|
-
assert.strictEqual(driver.mainContext, driver.currentContext)
|
|
254
|
-
await driver.refreshContexts()
|
|
255
|
-
const contextPath = driver.currentContext.path
|
|
256
|
-
assert.strictEqual(contextPath.length, frameElements.length)
|
|
257
|
-
for (const frameIndex of frameElements.keys()) {
|
|
258
|
-
assert.ok(await contextPath[frameIndex].equals(frameElements[frameIndex]))
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
async function partiallyTrackedFrameChain1() {
|
|
263
|
-
const frameElements = [null] as any[]
|
|
264
|
-
const frameElement2 = await mock.findElement('frame2')
|
|
265
|
-
frameElements.push(frameElement2)
|
|
266
|
-
await driver.switchToChildContext(frameElement2)
|
|
267
|
-
const frameElement1 = await mock.findElement('frame2-1')
|
|
268
|
-
frameElements.push(frameElement1)
|
|
269
|
-
await driver.switchToChildContext(frameElement1)
|
|
270
|
-
const frameElement22 = await mock.findElement('frame2-1-2')
|
|
271
|
-
frameElements.push(frameElement22)
|
|
272
|
-
await mock.switchToFrame(frameElement22)
|
|
273
|
-
assert.strictEqual(driver.currentContext.path.length, 3)
|
|
274
|
-
await driver.refreshContexts()
|
|
275
|
-
const contextPath = driver.currentContext.path
|
|
276
|
-
assert.strictEqual(contextPath.length, frameElements.length)
|
|
277
|
-
for (const frameIndex of frameElements.keys()) {
|
|
278
|
-
assert.ok(await contextPath[frameIndex].equals(frameElements[frameIndex]))
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
async function partiallyTrackedFrameChain2() {
|
|
283
|
-
const frameElements = [null] as any[]
|
|
284
|
-
const frameElement2 = await mock.findElement('frame2')
|
|
285
|
-
frameElements.push(frameElement2)
|
|
286
|
-
await mock.switchToFrame(frameElement2)
|
|
287
|
-
const frameElement1 = await mock.findElement('frame2-1')
|
|
288
|
-
frameElements.push(frameElement1)
|
|
289
|
-
await driver.switchToChildContext(frameElement1)
|
|
290
|
-
const frameElement22 = await mock.findElement('frame2-1-2')
|
|
291
|
-
frameElements.push(frameElement22)
|
|
292
|
-
await driver.switchToChildContext(frameElement22)
|
|
293
|
-
assert.strictEqual(driver.currentContext.path.length, 3)
|
|
294
|
-
await driver.refreshContexts()
|
|
295
|
-
const contextPath = driver.currentContext.path
|
|
296
|
-
assert.strictEqual(contextPath.length, frameElements.length)
|
|
297
|
-
for (const frameIndex of frameElements.keys()) {
|
|
298
|
-
assert.ok(await contextPath[frameIndex].equals(frameElements[frameIndex]))
|
|
299
|
-
}
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
async function trackedFrameChain() {
|
|
303
|
-
const frameElements = [null] as any[]
|
|
304
|
-
const frameElement2 = await mock.findElement('frame2')
|
|
305
|
-
frameElements.push(frameElement2)
|
|
306
|
-
await driver.switchToChildContext(frameElement2)
|
|
307
|
-
const frameElement1 = await mock.findElement('frame2-1')
|
|
308
|
-
frameElements.push(frameElement1)
|
|
309
|
-
await driver.switchToChildContext(frameElement1)
|
|
310
|
-
const frameElement22 = await mock.findElement('frame2-1-2')
|
|
311
|
-
frameElements.push(frameElement22)
|
|
312
|
-
await driver.switchToChildContext(frameElement22)
|
|
313
|
-
assert.strictEqual(driver.currentContext.path.length, frameElements.length)
|
|
314
|
-
await driver.refreshContexts()
|
|
315
|
-
const contextPath = driver.currentContext.path
|
|
316
|
-
assert.strictEqual(contextPath.length, frameElements.length)
|
|
317
|
-
for (const frameIndex of frameElements.keys()) {
|
|
318
|
-
assert.ok(await contextPath[frameIndex].equals(frameElements[frameIndex]))
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
})
|
|
322
|
-
|
|
323
|
-
describe('driver native', () => {
|
|
324
|
-
let driver: Driver<any, any, any, any>
|
|
325
|
-
|
|
326
|
-
before(async () => {
|
|
327
|
-
driver = new Driver({logger, spec: fake.spec, driver: new MockDriver({device: {isNative: true}})})
|
|
328
|
-
await driver.init()
|
|
329
|
-
})
|
|
330
|
-
|
|
331
|
-
it('skip unnecessary method calls on native mode', async () => {
|
|
332
|
-
const title = await driver.getTitle()
|
|
333
|
-
const url = await driver.getUrl()
|
|
334
|
-
assert.strictEqual(title, null)
|
|
335
|
-
assert.strictEqual(url, null)
|
|
336
|
-
})
|
|
337
|
-
|
|
338
|
-
describe('from driver info', () => {
|
|
339
|
-
let driver: Driver<any, any, any, any>
|
|
340
|
-
|
|
341
|
-
before(async () => {
|
|
342
|
-
driver = new Driver({
|
|
343
|
-
logger,
|
|
344
|
-
spec: fake.spec,
|
|
345
|
-
driver: new MockDriver({
|
|
346
|
-
device: {isNative: true, name: 'MobilePhone'},
|
|
347
|
-
platform: {name: 'OS', version: 'V'},
|
|
348
|
-
}),
|
|
349
|
-
})
|
|
350
|
-
await driver.init()
|
|
351
|
-
})
|
|
352
|
-
|
|
353
|
-
it('returns device name', () => {
|
|
354
|
-
assert.strictEqual(driver.deviceName, 'MobilePhone')
|
|
355
|
-
})
|
|
356
|
-
|
|
357
|
-
it('returns platform name', () => {
|
|
358
|
-
assert.strictEqual(driver.platformName, 'OS')
|
|
359
|
-
})
|
|
360
|
-
|
|
361
|
-
it('returns platform version', () => {
|
|
362
|
-
assert.strictEqual(driver.platformVersion, 'V')
|
|
363
|
-
})
|
|
364
|
-
|
|
365
|
-
it('returns browser name', () => {
|
|
366
|
-
assert.strictEqual(driver.browserName, null)
|
|
367
|
-
})
|
|
368
|
-
|
|
369
|
-
it('returns browser version', () => {
|
|
370
|
-
assert.strictEqual(driver.browserVersion, null)
|
|
371
|
-
})
|
|
372
|
-
})
|
|
373
|
-
|
|
374
|
-
describe('from no info', () => {
|
|
375
|
-
before(async () => {
|
|
376
|
-
driver = new Driver({
|
|
377
|
-
logger,
|
|
378
|
-
spec: fake.spec,
|
|
379
|
-
driver: new MockDriver({device: {isNative: true}}),
|
|
380
|
-
})
|
|
381
|
-
await driver.init()
|
|
382
|
-
})
|
|
383
|
-
|
|
384
|
-
it('returns device name', () => {
|
|
385
|
-
assert.strictEqual(driver.deviceName, undefined)
|
|
386
|
-
})
|
|
387
|
-
|
|
388
|
-
it('returns platform name', () => {
|
|
389
|
-
assert.strictEqual(driver.platformName, null)
|
|
390
|
-
})
|
|
391
|
-
|
|
392
|
-
it('returns platform version', () => {
|
|
393
|
-
assert.strictEqual(driver.platformVersion, null)
|
|
394
|
-
})
|
|
395
|
-
|
|
396
|
-
it('returns browser name', () => {
|
|
397
|
-
assert.strictEqual(driver.browserName, null)
|
|
398
|
-
})
|
|
399
|
-
|
|
400
|
-
it('returns browser version', () => {
|
|
401
|
-
assert.strictEqual(driver.browserVersion, null)
|
|
402
|
-
})
|
|
403
|
-
})
|
|
404
|
-
})
|
|
405
|
-
|
|
406
|
-
describe('driver mobile', () => {
|
|
407
|
-
let driver: Driver<any, any, any, any>
|
|
408
|
-
|
|
409
|
-
before(async () => {
|
|
410
|
-
driver = new Driver({logger, spec: fake.spec, driver: new MockDriver({device: {isNative: true}})})
|
|
411
|
-
await driver.init()
|
|
412
|
-
})
|
|
413
|
-
|
|
414
|
-
describe('from driver info', () => {
|
|
415
|
-
before(async () => {
|
|
416
|
-
driver = new Driver({
|
|
417
|
-
logger,
|
|
418
|
-
spec: fake.spec,
|
|
419
|
-
driver: new MockDriver({
|
|
420
|
-
ua: null,
|
|
421
|
-
device: {isMobile: true, name: 'MobilePhone'},
|
|
422
|
-
platform: {name: 'OS', version: 'V'},
|
|
423
|
-
browser: {name: 'Browser', version: '3'},
|
|
424
|
-
}),
|
|
425
|
-
})
|
|
426
|
-
await driver.init()
|
|
427
|
-
})
|
|
428
|
-
|
|
429
|
-
it('returns device name', () => {
|
|
430
|
-
assert.strictEqual(driver.deviceName, 'MobilePhone')
|
|
431
|
-
})
|
|
432
|
-
|
|
433
|
-
it('returns platform name', () => {
|
|
434
|
-
assert.strictEqual(driver.platformName, 'OS')
|
|
435
|
-
})
|
|
436
|
-
|
|
437
|
-
it('returns platform version', () => {
|
|
438
|
-
assert.strictEqual(driver.platformVersion, 'V')
|
|
439
|
-
})
|
|
440
|
-
|
|
441
|
-
it('returns browser name', () => {
|
|
442
|
-
assert.strictEqual(driver.browserName, 'Browser')
|
|
443
|
-
})
|
|
444
|
-
|
|
445
|
-
it('returns browser version', () => {
|
|
446
|
-
assert.strictEqual(driver.browserVersion, '3')
|
|
447
|
-
})
|
|
448
|
-
})
|
|
449
|
-
|
|
450
|
-
describe('from ua info', () => {
|
|
451
|
-
before(async () => {
|
|
452
|
-
driver = new Driver({
|
|
453
|
-
logger,
|
|
454
|
-
spec: fake.spec,
|
|
455
|
-
driver: new MockDriver({
|
|
456
|
-
ua: 'Mozilla/5.0 (iPhone; CPU iPhone OS 12_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.1 Mobile/15E148 Safari/604.1',
|
|
457
|
-
}),
|
|
458
|
-
})
|
|
459
|
-
await driver.init()
|
|
460
|
-
})
|
|
461
|
-
|
|
462
|
-
it('returns device name', () => {
|
|
463
|
-
assert.strictEqual(driver.deviceName, null)
|
|
464
|
-
})
|
|
465
|
-
|
|
466
|
-
it('returns platform name', () => {
|
|
467
|
-
assert.strictEqual(driver.platformName, 'iOS')
|
|
468
|
-
})
|
|
469
|
-
|
|
470
|
-
it('returns platform version', () => {
|
|
471
|
-
assert.strictEqual(driver.platformVersion, '12')
|
|
472
|
-
})
|
|
473
|
-
|
|
474
|
-
it('returns browser name', () => {
|
|
475
|
-
assert.strictEqual(driver.browserName, 'Safari')
|
|
476
|
-
})
|
|
477
|
-
|
|
478
|
-
it('returns browser version', () => {
|
|
479
|
-
assert.strictEqual(driver.browserVersion, '12')
|
|
480
|
-
})
|
|
481
|
-
})
|
|
482
|
-
})
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/tsconfig.json
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"rootDir": "src",
|
|
4
|
-
"outDir": "dist",
|
|
5
|
-
"declarationDir": "types",
|
|
6
|
-
"declaration": true,
|
|
7
|
-
"declarationMap": false,
|
|
8
|
-
"sourceMap": false,
|
|
9
|
-
"allowJs": true,
|
|
10
|
-
|
|
11
|
-
"module": "commonjs",
|
|
12
|
-
"target": "es2017",
|
|
13
|
-
"noImplicitAny": true,
|
|
14
|
-
"preserveConstEnums": true,
|
|
15
|
-
"downlevelIteration": true,
|
|
16
|
-
"esModuleInterop": true,
|
|
17
|
-
"stripInternal": false,
|
|
18
|
-
"removeComments": false,
|
|
19
|
-
},
|
|
20
|
-
"ts-node": {
|
|
21
|
-
"transpileOnly": true
|
|
22
|
-
},
|
|
23
|
-
"exclude" : ["dist", "types", "test"],
|
|
24
|
-
}
|