Skip to content

Commit 651a6bf

Browse files
authored
Merge pull request #1 from dapi-labs/add-examples
Add examples
2 parents 9e5e814 + 70fe3b4 commit 651a6bf

22 files changed

+13790
-14
lines changed

.eslintignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
lib/
2-
bin/
2+
bin/
3+
examples/

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,3 @@
22
*.log
33
node_modules/
44
lib/
5-
package-lock.json

.npmignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
src/
22
test/
3-
tsconfig.json
3+
tsconfig.json
4+
examples/

examples/.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
*.yaml
2+
*.json
3+
node_modules/

examples/README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
## How to run example
2+
3+
1. In the root folder, run `$ npm run build & npm link outdoc`
4+
2. Go to the **examples** folder, do `$ npm install`
5+
3. Running the script `$ npm run express-mocha`
6+
4. Check the output ***examples/api.yaml*
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
const supertest = require('supertest');
2+
const app = require('./index.js')
3+
const request = supertest(app)
4+
5+
describe('api testing', () => {
6+
test('should able to find all', (done) => {
7+
request
8+
.get('/projects')
9+
.set('x-api-key', 'wayne-test')
10+
.expect(200)
11+
.end(function(err, res) {
12+
if (err) throw err;
13+
done()
14+
});
15+
})
16+
17+
test('should able to find one', (done) => {
18+
request
19+
.get('/projects/uuid-1234')
20+
.expect(200)
21+
.end(function(err, res) {
22+
if (err) throw err;
23+
done()
24+
});
25+
})
26+
27+
test('should able to find one 401', (done) => {
28+
request
29+
.get('/projects/401')
30+
.expect(401)
31+
.end(function(err, res) {
32+
if (err) throw err;
33+
done()
34+
});
35+
})
36+
37+
test('should able to find one 404', (done) => {
38+
request
39+
.get('/projects/404')
40+
.expect(404)
41+
.end(function(err, res) {
42+
if (err) throw err;
43+
done()
44+
});
45+
})
46+
47+
describe('users', () => {
48+
test('should able to find one user', (done) => {
49+
request
50+
.get('/users/user-wayne')
51+
.expect(200)
52+
.end(function(err, res) {
53+
if (err) throw err;
54+
done()
55+
});
56+
})
57+
58+
test('should able to post', (done) => {
59+
request
60+
.post('/users')
61+
.set('content-type', 'application/json')
62+
.send({
63+
name: 'user wayne'
64+
})
65+
.expect(201)
66+
.end(function(err, res) {
67+
if (err) throw err;
68+
done()
69+
});
70+
})
71+
})
72+
})
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
const supertest = require('supertest');
2+
const app = require('./index.js')
3+
const request = supertest(app)
4+
5+
describe('api testing', () => {
6+
test('should able to path', (done) => {
7+
request
8+
.patch('/projects/uuid-1234')
9+
.set('content-type', 'application/json')
10+
.set('Accept', 'application/json')
11+
.send({
12+
project: {
13+
tags: ['2016', '2017']
14+
}
15+
})
16+
.expect(200)
17+
.end(function(err, res) {
18+
if (err) throw err;
19+
done()
20+
});
21+
})
22+
23+
test('should able to delete', (done) => {
24+
request
25+
.delete('/projects/uuid-2')
26+
.expect(204)
27+
.end(function(err, res) {
28+
if (err) throw err;
29+
done()
30+
});
31+
})
32+
})
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
const supertest = require('supertest');
2+
const app = require('./index.js')
3+
const request = supertest(app)
4+
5+
describe('api testing', () => {
6+
test('should able to find all', (done) => {
7+
request
8+
.get('/projects')
9+
.set('x-api-key', 'wayne-test')
10+
.expect(200)
11+
.end(function(err, res) {
12+
if (err) throw err;
13+
done()
14+
});
15+
})
16+
})

examples/express_jest/index.js

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
const express = require('express');
2+
const app = express();
3+
const port = 3000;
4+
5+
if (process.env.NODE_ENV === "test") {
6+
const { OutDoc } = require('../../lib/index');
7+
OutDoc.init();
8+
}
9+
10+
app.get('/projects', (req, res) => {
11+
res.json([{
12+
id: '1',
13+
name: 'dapi v1'
14+
}, {
15+
id: '2',
16+
name: 'cominsoon'
17+
}]);
18+
});
19+
20+
app.get('/projects/:id', (req, res) => {
21+
const { id } = req.params;
22+
if (id === "404") {
23+
return res.sendStatus(404);
24+
}
25+
if (id === "401") {
26+
return res.status(401).json({
27+
error: {
28+
code: '123',
29+
message: '401 unauth'
30+
}
31+
});
32+
}
33+
return res.json({
34+
id: '2',
35+
name: 'cominsoon'
36+
});
37+
});
38+
39+
app.patch('/projects/:id', (req, res) => {
40+
res.json([{
41+
id: '23',
42+
name: 'cominsoon'
43+
}]);
44+
});
45+
46+
app.post('/projects', (req, res) => {
47+
res.status(201).json([{
48+
id: '1',
49+
name: 'dapi v1'
50+
}]);
51+
});
52+
53+
app.delete('/projects/:id', (req, res) => {
54+
res.sendStatus(204);
55+
});
56+
57+
app.get('/users/:id', (req, res) => {
58+
const { id } = req.params;
59+
return res.json({
60+
id: '1',
61+
name: 'wayne user'
62+
});
63+
});
64+
65+
app.post('/users', (req, res) => {
66+
res.status(201).json([{
67+
id: '1',
68+
name: 'user v1'
69+
}]);
70+
});
71+
72+
if (process.env.NODE_ENV !== 'test') {
73+
app.listen(port, () => console.log(`Listening on port ${port}`));
74+
}
75+
76+
module.exports = app;
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
const request = require('supertest');
2+
3+
const app = require('./index.js');
4+
5+
describe('api testing', () => {
6+
it('should able to find all', (done) => {
7+
request(app)
8+
.get('/projects')
9+
.set('x-api-key', 'outdoc-test')
10+
.expect(200)
11+
.end(function(err, res) {
12+
if (err) throw err;
13+
done();
14+
});
15+
});
16+
17+
it('should able to find one', (done) => {
18+
request(app)
19+
.get('/projects/uuid-1234')
20+
.expect(200)
21+
.end(function(err, res) {
22+
if (err) throw err;
23+
done();
24+
});
25+
});
26+
27+
it('should able to find one 401', (done) => {
28+
request(app)
29+
.get('/projects/401')
30+
.expect(401)
31+
.end(function(err, res) {
32+
if (err) throw err;
33+
done();
34+
});
35+
});
36+
37+
it('should able to find one 404', (done) => {
38+
request(app)
39+
.get('/projects/404')
40+
.expect(404)
41+
.end(function(err, res) {
42+
if (err) throw err;
43+
done();
44+
});
45+
});
46+
47+
describe('users', () => {
48+
it('should able to find one user', (done) => {
49+
request(app)
50+
.get('/users/user-wayne')
51+
.expect(200)
52+
.end(function(err, res) {
53+
if (err) throw err;
54+
done();
55+
});
56+
});
57+
58+
it('should able to post', (done) => {
59+
request(app)
60+
.post('/users')
61+
.set('content-type', 'application/json')
62+
.send({
63+
name: 'user wayne'
64+
})
65+
.expect(201)
66+
.end(function(err, res) {
67+
if (err) throw err;
68+
done();
69+
});
70+
});
71+
});
72+
});

0 commit comments

Comments
 (0)