1 | var assert = require('assert');
|
2 |
|
3 | var allBrowsers = require('../fixtures/all-browsers.js');
|
4 | var flattenBrowser = require('../../lib/flatten_browser');
|
5 |
|
6 | test('flatten browser:simple', function(done) {
|
7 | var request = [
|
8 | {name: 'iphone', version: '7.0..latest'},
|
9 | {name: 'android', version: '4.1'},
|
10 | {name: 'ipad', version: '7.0..latest'}
|
11 | ];
|
12 |
|
13 | var expected = [
|
14 | {name: 'iphone', version: '7.0', platform: 'Mac 10.9'},
|
15 | {name: 'iphone', version: '7.1', platform: 'Mac 10.9'},
|
16 | {name: 'iphone', version: '8.0', platform: 'Mac 10.10'},
|
17 | {name: 'iphone', version: '8.1', platform: 'Mac 10.10'},
|
18 | {name: 'iphone', version: '8.2', platform: 'Mac 10.10'},
|
19 | {name: 'android', version: '4.1', platform: 'Linux'},
|
20 | {name: 'ipad', version: '7.0', platform: 'Mac 10.9'},
|
21 | {name: 'ipad', version: '7.1', platform: 'Mac 10.9'},
|
22 | {name: 'ipad', version: '8.0', platform: 'Mac 10.10'},
|
23 | {name: 'ipad', version: '8.1', platform: 'Mac 10.10'},
|
24 | {name: 'ipad', version: '8.2', platform: 'Mac 10.10'}
|
25 | ];
|
26 |
|
27 | assert.deepEqual(
|
28 | flattenBrowser(request, allBrowsers),
|
29 | expected,
|
30 | 'We found the browsers to test'
|
31 | );
|
32 |
|
33 | done();
|
34 | });
|
35 |
|
36 | test('flatten browser:stable', function(done) {
|
37 | var request = [
|
38 | {name: 'chrome', version: '40..latest', platform: 'Windows 2012 R2'}
|
39 | ];
|
40 |
|
41 | var expected = [
|
42 | {name: 'chrome', version: '40', platform: 'Windows 2012 R2'},
|
43 | {name: 'chrome', version: '41', platform: 'Windows 2012 R2'},
|
44 | {name: 'chrome', version: '42', platform: 'Windows 2012 R2'}
|
45 | ];
|
46 |
|
47 | assert.deepEqual(
|
48 | flattenBrowser(request, allBrowsers),
|
49 | expected,
|
50 | 'We found the browsers to test'
|
51 | );
|
52 |
|
53 | done();
|
54 | });
|
55 |
|
56 | test('flatten browser:negative', function(done) {
|
57 | var request = [
|
58 | {name: 'chrome', version: '-3..latest', platform: 'Windows 2012 R2'},
|
59 | {name: 'safari', version: '-1..latest'},
|
60 | {name: 'ipad', version: '-2..8.1', platform: 'Mac 10.10'}
|
61 | ];
|
62 |
|
63 | var expected = [
|
64 | {name: 'chrome', version: '39', platform: 'Windows 2012 R2'},
|
65 | {name: 'chrome', version: '40', platform: 'Windows 2012 R2'},
|
66 | {name: 'chrome', version: '41', platform: 'Windows 2012 R2'},
|
67 | {name: 'chrome', version: '42', platform: 'Windows 2012 R2'},
|
68 | {name: 'safari', version: '7', platform: 'Mac 10.9'},
|
69 | {name: 'safari', version: '8', platform: 'Mac 10.10'},
|
70 | {name: 'ipad', version: '7.1', platform: 'Mac 10.10'},
|
71 | {name: 'ipad', version: '8.0', platform: 'Mac 10.10'},
|
72 | {name: 'ipad', version: '8.1', platform: 'Mac 10.10'}
|
73 | ];
|
74 |
|
75 | assert.deepEqual(
|
76 | flattenBrowser(request, allBrowsers),
|
77 | expected,
|
78 | 'We found the browsers to test'
|
79 | );
|
80 |
|
81 | done();
|
82 | });
|
83 |
|
84 | test('flatten browser:negative with arrays', function(done) {
|
85 | var request = [
|
86 | {name: 'ipad', version: ['7.1', '-2..8.2', '-2..latest']},
|
87 | {name: 'ipad', version: '-2..latest'}
|
88 | ];
|
89 |
|
90 | var expected = [
|
91 | {name: 'ipad', version: '7.1', platform: 'Mac 10.9'},
|
92 | {name: 'ipad', version: '8.0', platform: 'Mac 10.10'},
|
93 | {name: 'ipad', version: '8.1', platform: 'Mac 10.10'},
|
94 | {name: 'ipad', version: '8.2', platform: 'Mac 10.10'}
|
95 | ];
|
96 |
|
97 | assert.deepEqual(
|
98 | flattenBrowser(request, allBrowsers),
|
99 | expected,
|
100 | 'We found the browsers to test'
|
101 | );
|
102 |
|
103 | done();
|
104 | });
|
105 |
|
106 | test('flatten browser:oldest', function(done) {
|
107 | var request = [
|
108 | {name: 'chrome', version: 'oldest', platform: 'Windows 2012 R2'},
|
109 | {name: 'firefox', version: 'oldest..4', platform: 'Windows 2012 R2'}
|
110 | ];
|
111 |
|
112 | var expected = [
|
113 | {name: 'chrome', version: '26', platform: 'Windows 2012 R2'},
|
114 | {name: 'firefox', version: '3.0', platform: 'Windows 2012 R2'},
|
115 | {name: 'firefox', version: '3.5', platform: 'Windows 2012 R2'},
|
116 | {name: 'firefox', version: '3.6', platform: 'Windows 2012 R2'},
|
117 | {name: 'firefox', version: '4', platform: 'Windows 2012 R2'}
|
118 | ];
|
119 |
|
120 | assert.deepEqual(
|
121 | flattenBrowser(request, allBrowsers),
|
122 | expected,
|
123 | 'We found the browsers to test'
|
124 | );
|
125 |
|
126 | done();
|
127 | });
|