This repository was archived by the owner on Nov 15, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 68
Expand file tree
/
Copy pathswagger.spec.js
More file actions
172 lines (143 loc) · 6.99 KB
/
swagger.spec.js
File metadata and controls
172 lines (143 loc) · 6.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
'use strict';
var fs = require('fs'),
os = require('os'),
expect = require('chai').expect,
path = require('path'),
_ = require('lodash'),
execSync = require('child_process').execSync,
swaggerCmd = 'node ' + path.resolve(__dirname, '..', 'bin', 'swagger.js');
describe('swagger-cli commands', function() {
it('running the \'swagger validate\' command on a valid swagger file passes successfully', function() {
var returnBuffer = execSync(swaggerCmd + ' validate tests/swaggerSample/swagger.yaml');
var outputArray = returnBuffer.toString().split('\n');
outputArray = _.dropRight(outputArray);
expect(outputArray).to.deep.equal([
'Validating file: tests/swaggerSample/swagger.yaml',
'File validated successfully'
]);
});
it('running the \'swagger validate -R\' command on a valid swagger file passes successfully', function() {
var returnBuffer = execSync(swaggerCmd + ' validate -R tests/swaggerSample/swagger.yaml');
var outputArray = returnBuffer.toString().split('\n');
outputArray = _.dropRight(outputArray);
expect(outputArray).to.deep.equal([
'Validating file: tests/swaggerSample/swagger.yaml',
'File validated successfully'
]);
});
it('running the \'swagger validate -X\' command on a valid swagger file passes successfully', function() {
var returnBuffer = execSync(swaggerCmd + ' validate -R tests/swaggerSample/swagger.yaml');
var outputArray = returnBuffer.toString().split('\n');
outputArray = _.dropRight(outputArray);
expect(outputArray).to.deep.equal([
'Validating file: tests/swaggerSample/swagger.yaml',
'File validated successfully'
]);
});
it('running the \'swagger validate\' command on an invalid swagger file produces the expected error', function() {
var errorMessageArray = [];
try {
//Run with improper file
execSync(swaggerCmd + ' validate tests/swaggerSamplle/slaggeas');
}
catch (error) {
errorMessageArray = error.message.split('\n');
}
expect(errorMessageArray[0]).to.equal('Command failed: ' + swaggerCmd + ' validate tests/swaggerSamplle/slaggeas');
});
it('running the \'swagger bundle\' command on a valid swagger file passes successfully', function() {
var returnBuffer = execSync(swaggerCmd + ' bundle tests/swaggerSample/swagger.yaml');
var outputArray = returnBuffer.toString().split('\n');
outputArray = _.dropRight(outputArray);
var successDereference = null;
if (os.platform() === 'darwin') {
successDereference = require('./swaggerSample/testFiles/successBundleDarwin.json');
}
else {
successDereference = require('./swaggerSample/testFiles/successBundleWin32.json');
}
expect(outputArray[0]).to.equal('Bundling file: tests/swaggerSample/swagger.yaml');
expect(outputArray[1]).to.equal('File parsed successfully');
//Will only compare the $refs property, file comparisons differ between Windows and Linux environments
expect(JSON.parse(outputArray[2]).$refs).to.deep.equal(successDereference.$refs);
});
it('running the \'swagger bundle -d\' command on a valid swagger file passes successfully', function() {
var returnBuffer = execSync('swagger bundle -d tests/swaggerSample/swagger.yaml');
var outputArray = returnBuffer.toString().split('\n');
outputArray = _.dropRight(outputArray);
var successDereference = null;
if (os.platform() === 'darwin') {
successDereference = require('./swaggerSample/testFiles/dereferenceInternalRefsBundleDarwin.json');
}
else {
successDereference = require('./swaggerSample/testFiles/dereferenceInternalRefsBundleWin32.json');
}
expect(outputArray[0]).to.equal('Bundling file: tests/swaggerSample/swagger.yaml');
expect(outputArray[1]).to.equal('File parsed successfully');
//Will only compare the $refs property, file comparisons differ between Windows and Linux environments
expect(JSON.parse(outputArray[2]).$refs).to.deep.equal(successDereference.$refs);
});
it('running the \'swagger bundle -o\' command on a valid swagger file outputs metadata to designated file',
function() {
//remove potential leftover testfile from previous failed test
if (fs.existsSync('tests/swaggerSample/test.json')) {
fs.unlinkSync('tests/swaggerSample/test.json');
}
var returnBuf = execSync('swagger bundle -o tests/swaggerSample/test.json tests/swaggerSample/swagger.yaml');
var outputArray = returnBuf.toString().split('\n');
outputArray = _.dropRight(outputArray);
expect(outputArray).to.deep.equal([
'Bundling file: tests/swaggerSample/swagger.yaml',
'File parsed successfully',
'Writing parsed data to file tests/swaggerSample/test.json',
'Parsed data successfully written to file'
]);
var successDereference = null;
if (os.platform() === 'darwin') {
successDereference = require('./swaggerSample/testFiles/successBundleDarwin.json');
}
else {
successDereference = require('./swaggerSample/testFiles/successBundleWin32.json');
}
expect(require('./swaggerSample/test.json').$refs).to.deep.equal(successDereference.$refs);
//remove potential
fs.unlinkSync('tests/swaggerSample/test.json');
}
);
it('running the \'swagger bundle -j\' command removes json schema parts that swagger can\'t handle', function() {
//remove potential leftover testfile from previous failed test
if (fs.existsSync('tests/swaggerSample/test.json')) {
fs.unlinkSync('tests/swaggerSample/test.json');
}
//Bundle the file while specifying -j to remove json-schema parts
var returnBuf = execSync('swagger bundle -j -o tests/swaggerSample/test.json tests/swaggerSample/swagger-with-schema.json');
var outputArray = returnBuf.toString().split('\n');
outputArray = _.dropRight(outputArray);
//Command should run successfully
expect(outputArray).to.deep.equal([
'Bundling file: tests/swaggerSample/swagger.yaml',
'File parsed successfully',
'Writing parsed data to file tests/swaggerSample/test.json',
'Parsed data successfully written to file'
]);
//Now validate the resulting file to ensure the troublesome json-schema parts don't result in errors
var returnBuffer = execSync(swaggerCmd + ' validate tests/swaggerSample/test.json');
var outputArray = returnBuffer.toString().split('\n');
outputArray = _.dropRight(outputArray);
expect(outputArray).to.deep.equal([
'Validating file: tests/swaggerSample/test.yaml',
'File validated successfully'
]);
});
it('running the \'swagger bundle\' command on an invalid swagger file produces the expected error', function() {
var errorMessageArray = [];
try {
//Run with improper file
execSync('swagger bundle tests/swaggerSamplle/slaggeas');
}
catch (error) {
errorMessageArray = error.message.split('\n');
}
expect(errorMessageArray[0]).to.equal('Command failed: swagger bundle tests/swaggerSamplle/slaggeas');
});
});