@@ -4,17 +4,11 @@ var path = require('path');
4
4
var mocks = require ( 'mocks' ) ,
5
5
httpMock = require ( './lib/mocks' ) . httpMock ,
6
6
fsMock = require ( './lib/mocks' ) . fsMock ,
7
- unzipMock = require ( './lib/mocks' ) . unzipMock ;
7
+ unzipMock = require ( './lib/mocks' ) . unzipMock ,
8
+ sinon = require ( 'sinon' ) ;
8
9
9
- var zb = mocks . loadFile ( './lib/ZipBinary.js' , {
10
- https : httpMock ,
11
- fs : fsMock ,
12
- unzip : unzipMock
13
- } ) ;
14
- var ZipBinary = zb . ZipBinary ;
15
-
16
- var PLATFORM = 'platform' ;
17
- var ARCH = 'arch' ;
10
+ var PLATFORM = 'linux' ;
11
+ var ARCH = 'x64' ;
18
12
var EXT = 'exe' ;
19
13
var DEFAULT_BINARY_DIR = path . resolve ( path . join ( __dirname , '../bin' , PLATFORM , ARCH ) ) ;
20
14
var DEFAULT_BINARY_DIR_NO_ARCH = path . resolve ( path . join ( __dirname , '../bin' , PLATFORM ) ) ;
@@ -25,44 +19,69 @@ var OTHER_BINARY_DIR = '/bin';
25
19
var OTHER_BINARY_FILE = path . join ( OTHER_BINARY_DIR , 'BrowserStackLocal' ) ;
26
20
var OTHER_BINARY_FILE_WITH_EXT = path . join ( OTHER_BINARY_DIR , 'BrowserStackLocal.' + EXT ) ;
27
21
var ZIP_URL = 'https://www.browserstack.com/browserstack-local/BrowserStackLocal-' + PLATFORM + '-' + ARCH + '.zip' ;
28
- var ZIP_URL_NO_ARCH = 'https://www.browserstack.com/browserstack-local/BrowserStackLocal-' + PLATFORM + ' .zip';
22
+ var ZIP_URL_NO_ARCH = 'https://www.browserstack.com/browserstack-local/BrowserStackLocal-win32 .zip' ;
29
23
30
24
describe ( 'ZipBinary' , function ( ) {
31
- var zipBinary ;
25
+ var zipBinary , ZipBinary , platformMock , archMock , binaryPathMock , zipPathMock ,
26
+ logBinaryOutputMock , warnLogMock , infoLogMock , helper , basePathMock ;
32
27
33
28
beforeEach ( function ( ) {
34
29
fsMock . fileNameModded = undefined ;
35
30
fsMock . mode = undefined ;
36
31
unzipMock . dirName = undefined ;
37
32
httpMock . url = undefined ;
38
- } ) ;
39
-
40
- describe ( 'with default binary path' , function ( ) {
41
- beforeEach ( function ( ) {
42
- zipBinary = new ZipBinary ( PLATFORM , ARCH ) ;
43
- } ) ;
44
-
45
- it ( 'should have the correct path' , function ( ) {
46
- expect ( zipBinary . path ) . to . equal ( DEFAULT_BINARY_FILE ) ;
47
- } ) ;
48
-
49
- describe ( 'with extension' , function ( ) {
50
- it ( 'should have the correct path' , function ( ) {
51
- zipBinary = new ZipBinary ( PLATFORM , ARCH , null , EXT ) ;
52
- expect ( zipBinary . path ) . to . equal ( DEFAULT_BINARY_FILE_WITH_EXT ) ;
53
- } ) ;
54
- } ) ;
55
33
56
- it ( 'should have the correct command' , function ( ) {
57
- expect ( zipBinary . command ) . to . equal ( DEFAULT_BINARY_FILE ) ;
34
+ platformMock = sinon . stub ( ) ;
35
+ archMock = sinon . stub ( ) ;
36
+ binaryPathMock = sinon . stub ( ) ;
37
+ zipPathMock = sinon . stub ( ) ;
38
+ logBinaryOutputMock = sinon . stub ( ) ;
39
+ warnLogMock = sinon . stub ( ) ;
40
+ infoLogMock = sinon . stub ( ) ;
41
+ basePathMock = sinon . stub ( ) ;
42
+
43
+ helper = {
44
+ helper : function ( ) {
45
+ this . _basePath = 'default' ;
46
+
47
+ this . getPlatform = platformMock ;
48
+ this . getArch = archMock ;
49
+ this . getBinaryPath = binaryPathMock ;
50
+ this . getZipPath = zipPathMock ;
51
+ this . logBinaryOutput = logBinaryOutputMock ;
52
+ this . setBasePath = function ( path ) {
53
+ console . log ( "CALLED" ) ;
54
+ this . _basePath = path
55
+ } ;
56
+ this . getBasePath = basePathMock ;
57
+ this . log = {
58
+ warn : warnLogMock ,
59
+ info : infoLogMock
60
+ } ;
61
+ }
62
+ } ;
63
+ var zb = mocks . loadFile ( './lib/ZipBinary.js' , {
64
+ https : httpMock ,
65
+ fs : fsMock ,
66
+ unzip : unzipMock ,
67
+ './helper' : helper
58
68
} ) ;
69
+ ZipBinary = zb . ZipBinary ;
70
+ } ) ;
59
71
72
+ describe ( 'with default binary path' , function ( ) {
60
73
it ( 'should have the correct args' , function ( ) {
74
+ zipBinary = new ZipBinary ( ) ;
61
75
expect ( zipBinary . args ) . to . eql ( [ ] ) ;
62
76
} ) ;
63
77
64
78
describe ( '#update' , function ( ) {
65
79
it ( 'should download the zip file' , function ( done ) {
80
+ platformMock . returns ( 'linux' ) ;
81
+ archMock . returns ( 'x64' ) ;
82
+ basePathMock . returns ( DEFAULT_BINARY_DIR ) ;
83
+ binaryPathMock . returns ( DEFAULT_BINARY_FILE ) ;
84
+ zipBinary = new ZipBinary ( ) ;
66
85
zipBinary . update ( function ( ) {
67
86
expect ( fsMock . fileNameModded ) . to . equal ( DEFAULT_BINARY_FILE ) ;
68
87
expect ( fsMock . mode ) . to . equal ( '0755' ) ;
@@ -74,7 +93,11 @@ describe('ZipBinary', function () {
74
93
75
94
describe ( 'with no arch' , function ( ) {
76
95
it ( 'should download the zip file' , function ( done ) {
77
- zipBinary = new ZipBinary ( PLATFORM ) ;
96
+ platformMock . returns ( 'win32' ) ;
97
+ archMock . returns ( '' ) ;
98
+ basePathMock . returns ( DEFAULT_BINARY_DIR_NO_ARCH ) ;
99
+ binaryPathMock . returns ( DEFAULT_BINARY_FILE_NO_ARCH ) ;
100
+ zipBinary = new ZipBinary ( ) ;
78
101
zipBinary . update ( function ( ) {
79
102
expect ( fsMock . fileNameModded ) . to . equal ( DEFAULT_BINARY_FILE_NO_ARCH ) ;
80
103
expect ( fsMock . mode ) . to . equal ( '0755' ) ;
@@ -88,31 +111,18 @@ describe('ZipBinary', function () {
88
111
} ) ;
89
112
90
113
describe ( 'with given binary path' , function ( ) {
91
- beforeEach ( function ( ) {
92
- zipBinary = new ZipBinary ( PLATFORM , ARCH , OTHER_BINARY_DIR ) ;
93
- } ) ;
94
-
95
- it ( 'should have the correct path' , function ( ) {
96
- expect ( zipBinary . path ) . to . equal ( OTHER_BINARY_FILE ) ;
97
- } ) ;
98
-
99
- describe ( 'with extension' , function ( ) {
100
- it ( 'should have the correct path' , function ( ) {
101
- zipBinary = new ZipBinary ( PLATFORM , ARCH , OTHER_BINARY_DIR , EXT ) ;
102
- expect ( zipBinary . path ) . to . equal ( OTHER_BINARY_FILE_WITH_EXT ) ;
103
- } ) ;
104
- } ) ;
105
-
106
- it ( 'should have the correct command' , function ( ) {
107
- expect ( zipBinary . command ) . to . equal ( OTHER_BINARY_FILE ) ;
108
- } ) ;
109
-
110
114
it ( 'should have the correct args' , function ( ) {
115
+ zipBinary = new ZipBinary ( ) ;
111
116
expect ( zipBinary . args ) . to . eql ( [ ] ) ;
112
117
} ) ;
113
118
114
119
describe ( '#update' , function ( ) {
115
120
it ( 'should download the zip file' , function ( done ) {
121
+ platformMock . returns ( 'linux' ) ;
122
+ archMock . returns ( 'x64' ) ;
123
+ basePathMock . returns ( OTHER_BINARY_DIR ) ;
124
+ binaryPathMock . returns ( OTHER_BINARY_FILE ) ;
125
+ zipBinary = new ZipBinary ( ) ;
116
126
zipBinary . update ( function ( ) {
117
127
expect ( fsMock . fileNameModded ) . to . equal ( OTHER_BINARY_FILE ) ;
118
128
expect ( fsMock . mode ) . to . equal ( '0755' ) ;
@@ -124,7 +134,11 @@ describe('ZipBinary', function () {
124
134
125
135
describe ( 'with no arch' , function ( ) {
126
136
it ( 'should download the zip file' , function ( done ) {
127
- zipBinary = new ZipBinary ( PLATFORM , null , OTHER_BINARY_DIR ) ;
137
+ platformMock . returns ( 'win32' ) ;
138
+ archMock . returns ( '' ) ;
139
+ basePathMock . returns ( OTHER_BINARY_DIR ) ;
140
+ binaryPathMock . returns ( OTHER_BINARY_FILE ) ;
141
+ zipBinary = new ZipBinary ( ) ;
128
142
zipBinary . update ( function ( ) {
129
143
expect ( fsMock . fileNameModded ) . to . equal ( OTHER_BINARY_FILE ) ;
130
144
expect ( fsMock . mode ) . to . equal ( '0755' ) ;
0 commit comments