automock 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -1
- data/README.md +6 -6
- data/Rakefile +2 -1
- data/bin/server +1 -1
- data/bin/setup +1 -2
- data/lib/automock/response_mock.rb +1 -1
- data/lib/automock/version.rb +1 -1
- data/server/.babelrc +1 -1
- data/server/.gitignore +1 -0
- data/server/bin/server +1 -1
- data/server/gulpfile.coffee +17 -9
- data/server/package.json +3 -0
- data/server/{assets → src/assets}/index.html +0 -0
- data/server/{assets → src/assets}/javascripts/actions/mock_files_actions.js +0 -0
- data/server/{assets → src/assets}/javascripts/actions/selected_files_actions.js +0 -0
- data/server/{assets → src/assets}/javascripts/components/file_list.react.js +0 -0
- data/server/{assets → src/assets}/javascripts/components/select_buttons.react.js +0 -0
- data/server/{assets → src/assets}/javascripts/components/selectable_lists.react.js +0 -0
- data/server/{assets → src/assets}/javascripts/containers/app.react.js +0 -0
- data/server/{assets → src/assets}/javascripts/index.js +0 -0
- data/server/{assets → src/assets}/javascripts/reducers/index.js +0 -0
- data/server/{assets → src/assets}/javascripts/reducers/mock_files.js +0 -0
- data/server/{assets → src/assets}/javascripts/reducers/selected_files.js +0 -0
- data/server/{assets → src/assets}/stylesheets/application.scss +0 -0
- data/server/{assets → src/assets}/stylesheets/components/_file_list.scss +0 -0
- data/server/{assets → src/assets}/stylesheets/components/_select_buttons.scss +0 -0
- data/server/{assets → src/assets}/stylesheets/components/_selectable_list.scss +0 -0
- data/server/{app → src}/db/database.json +0 -0
- data/server/{app → src}/db/sequelize.js +0 -0
- data/server/{app → src}/index.js +16 -14
- data/server/{app → src}/models/selected_file.js +0 -0
- data/server/{app → src}/proxy_server.js +0 -0
- data/server/test/request/common_hooks.js +3 -3
- data/server/test/request/mock_files_test.js +1 -1
- data/server/test/request/selected_files_test.js +5 -5
- metadata +22 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c29cacf8edc506987577004177435059b9bc3599
|
4
|
+
data.tar.gz: 9e2f0ce30c6f3cb6091576750beae29ffc86f87b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 065c43312fdb86f0a77b147bf09d557db387d3acbb1d4622de014ebe38040199235f43d6d89837e4132de3dbe6d908371bc1e87a5916db38efa2584c743d2789
|
7
|
+
data.tar.gz: 4dd774c0f87a685eda968a3a0617ef463c83d032da5014758fc23a5938376790230c8736a1ca7a6718b9b8f0ae0f08a4e2a1fe6cfcc728deeb0f7ec91aaef83e
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# Automock
|
2
|
+
[![Build Status](https://travis-ci.org/joe-re/automock.svg?branch=master)](https://travis-ci.org/joe-re/automock)
|
2
3
|
|
3
4
|
Generate WebAPI mocking response data from your rails application's request-spec.
|
4
5
|
|
@@ -28,7 +29,7 @@ $ rake automock:setup
|
|
28
29
|
|
29
30
|
This generate `automock` directory under your rails root.
|
30
31
|
Mocking server is inside it.
|
31
|
-
I recommend adding automock directory to .gitignore
|
32
|
+
I recommend adding automock directory to .gitignore.
|
32
33
|
|
33
34
|
Then run mocking server.
|
34
35
|
|
@@ -39,7 +40,7 @@ $ rake automock:server
|
|
39
40
|
By default, proxy server use 8001 port and target application using 3000 port.
|
40
41
|
Mocking management server use 8000 port.
|
41
42
|
Now you can access it, localhost:8000.
|
42
|
-
And access localhost:8001, you can receive response by proxy
|
43
|
+
And access localhost:8001, you can receive response by proxy.
|
43
44
|
|
44
45
|
## Usage
|
45
46
|
|
@@ -53,8 +54,8 @@ AUTOMOCK=1 rspec
|
|
53
54
|
#### Example
|
54
55
|
|
55
56
|
```ruby
|
56
|
-
|
57
|
-
|
57
|
+
describe 'GET /api/v1/users' do
|
58
|
+
context 'This is test API', automock: true do
|
58
59
|
before do
|
59
60
|
get '/api/v1/users'
|
60
61
|
end
|
@@ -92,13 +93,12 @@ $ rake automock:server automock_port=3001 rails_port=3002 proxy_port=3003
|
|
92
93
|
## Development
|
93
94
|
|
94
95
|
After checking out the repo, run `bin/setup` to install dependencies.
|
95
|
-
If you run mocking server, run `bin/server` to start it
|
96
|
+
If you run mocking server, run `bin/server` to start it.
|
96
97
|
|
97
98
|
### spec
|
98
99
|
|
99
100
|
Then, run `rake spec` to run the tests for ruby code.
|
100
101
|
And change directory to `server`, then run `npm run test` to run the tests for mocking server.
|
101
|
-
If you want to update mock data for specs, run `bundle exec rake update_mockdata_fixtures` command.
|
102
102
|
|
103
103
|
## Contributing
|
104
104
|
|
data/Rakefile
CHANGED
@@ -7,5 +7,6 @@ task default: :spec
|
|
7
7
|
task :update_mockdata_fixtures do
|
8
8
|
system('rm -rf spec/dummy/automock')
|
9
9
|
system('AUTOMOCK=1 bundle exec rspec spec/dummy/spec/requests/dummy_api.rb')
|
10
|
-
FileUtils.
|
10
|
+
FileUtils.mkdir_p('spec/fixtures/data')
|
11
|
+
FileUtils.cp_r('spec/dummy/automock/data/', 'spec/fixtures/', remove_destination: true)
|
11
12
|
end
|
data/bin/server
CHANGED
data/bin/setup
CHANGED
@@ -4,10 +4,9 @@ IFS=$'\n\t'
|
|
4
4
|
set -vx
|
5
5
|
|
6
6
|
bundle install --path vendor/bundle
|
7
|
-
bundle exec rake update_mockdata_fixtures
|
8
7
|
|
9
8
|
# Do any other automated setup that you need to do here
|
10
9
|
cd server
|
11
10
|
npm install
|
12
11
|
npm run build
|
13
|
-
node node_modules/db-migrate/bin/db-migrate up --config
|
12
|
+
node node_modules/db-migrate/bin/db-migrate up --config src/db/database.json -e dev
|
data/lib/automock/version.rb
CHANGED
data/server/.babelrc
CHANGED
data/server/.gitignore
CHANGED
data/server/bin/server
CHANGED
data/server/gulpfile.coffee
CHANGED
@@ -4,32 +4,40 @@ browserify = require 'browserify'
|
|
4
4
|
source = require 'vinyl-source-stream'
|
5
5
|
sass = require 'gulp-sass'
|
6
6
|
seq = require 'run-sequence'
|
7
|
+
babel = require 'gulp-babel'
|
7
8
|
|
8
9
|
gulp.path =
|
9
|
-
|
10
|
-
|
10
|
+
assetSrc: 'src/assets'
|
11
|
+
assetDist: 'dist/assets'
|
12
|
+
src: 'src'
|
13
|
+
dist: 'dist'
|
11
14
|
|
12
15
|
gulp.task 'build', ->
|
13
|
-
seq ['build:html', 'build:browserify', 'build:scss']
|
16
|
+
seq ['build:html', 'build:server', 'build:browserify', 'build:scss']
|
14
17
|
|
15
18
|
gulp.task 'build:html', ->
|
16
|
-
gulp.src "#{@path.
|
19
|
+
gulp.src "#{@path.assetSrc}/**/*.html"
|
20
|
+
.pipe gulp.dest(@path.assetDist)
|
21
|
+
|
22
|
+
gulp.task 'build:server', ->
|
23
|
+
gulp.src ["#{@path.src}/**/*.js", "!#{@path.assetSrc}/**/*.js"]
|
24
|
+
.pipe babel()
|
17
25
|
.pipe gulp.dest(@path.dist)
|
18
26
|
|
19
27
|
gulp.task 'build:browserify', ->
|
20
28
|
browserify(
|
21
|
-
entries: ["#{@path.
|
29
|
+
entries: ["#{@path.assetSrc}/javascripts/index.js"]
|
22
30
|
extensions: ['.js', '.react.js']
|
23
31
|
).transform(babelify)
|
24
32
|
.bundle()
|
25
33
|
.pipe source 'bundle.js'
|
26
|
-
.pipe gulp.dest(@path.
|
34
|
+
.pipe gulp.dest(@path.assetDist)
|
27
35
|
|
28
36
|
gulp.task 'build:scss', ->
|
29
|
-
gulp.src "#{@path.
|
37
|
+
gulp.src "#{@path.assetSrc}/**/*.scss"
|
30
38
|
.pipe sass({ includePaths: [ 'node_modules' ] }).on('error', sass.logError)
|
31
|
-
.pipe gulp.dest(@path.
|
39
|
+
.pipe gulp.dest(@path.assetDist)
|
32
40
|
|
33
41
|
gulp.task 'watch', ['build'], ->
|
34
|
-
gulp.watch("#{@path.src}/**/*.js", ['build:browserify'])
|
42
|
+
gulp.watch("#{@path.src}/**/*.js", ['build:browserify', 'build:server'])
|
35
43
|
gulp.watch("#{@path.src}/**/*.scss", ['build:scss'])
|
data/server/package.json
CHANGED
@@ -5,13 +5,16 @@
|
|
5
5
|
"babel": "^6.1.18",
|
6
6
|
"babel-cli": "^6.2.0",
|
7
7
|
"babel-core": "^6.3.26",
|
8
|
+
"babel-polyfill": "^6.3.14",
|
8
9
|
"babel-preset-es2015": "^6.1.18",
|
9
10
|
"babel-preset-react": "^6.3.13",
|
11
|
+
"babel-preset-stage-3": "^6.3.13",
|
10
12
|
"babelify": "^7.2.0",
|
11
13
|
"browserify": "^12.0.1",
|
12
14
|
"coffee-script": "^1.10.0",
|
13
15
|
"db-migrate": "^0.9.23",
|
14
16
|
"gulp": "^3.9.0",
|
17
|
+
"gulp-babel": "^6.1.1",
|
15
18
|
"gulp-sass": "^2.1.1",
|
16
19
|
"http-proxy": "^1.12.0",
|
17
20
|
"mocha": "^2.3.4",
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/server/{app → src}/index.js
RENAMED
@@ -1,5 +1,7 @@
|
|
1
1
|
'use strict';
|
2
2
|
|
3
|
+
import 'babel-polyfill';
|
4
|
+
|
3
5
|
const express = require('express');
|
4
6
|
const app = express();
|
5
7
|
const recursive = require('recursive-readdir');
|
@@ -14,20 +16,20 @@ app.use(bodyParser.urlencoded());
|
|
14
16
|
app.use(bodyParser.json());
|
15
17
|
let proxyServer;
|
16
18
|
|
17
|
-
app.get('/mock_files', function(_req, res){
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
19
|
+
app.get('/mock_files', async function(_req, res){
|
20
|
+
const filePaths = await new Promise((resolve) =>
|
21
|
+
recursive(process.env.AUTOMOCK_DATA_PATH, (_err, v) => resolve(v))
|
22
|
+
);
|
23
|
+
const files = await Promise.all(filePaths.map((filePath) =>
|
24
|
+
new Promise((resolve) => {
|
25
|
+
fs.readFile(filePath, 'utf8', (_err2, text) => {
|
26
|
+
const mockData = JSON.parse(text);
|
27
|
+
mockData.name = path.relative(process.env.AUTOMOCK_DATA_PATH, filePath);
|
28
|
+
resolve(mockData);
|
29
|
+
});
|
30
|
+
})
|
31
|
+
));
|
32
|
+
res.status(200).send(files);
|
31
33
|
});
|
32
34
|
|
33
35
|
app.get('/selected_files', function(_req, res){
|
File without changes
|
File without changes
|
@@ -1,12 +1,12 @@
|
|
1
1
|
process.env.AUTOMOCK_DATA_PATH=__dirname + '/../fixtures/mock';
|
2
2
|
process.env.NODE_ENV='test';
|
3
3
|
|
4
|
-
const sequelize = require('../../
|
5
|
-
const SelectedFile = require('../../
|
4
|
+
const sequelize = require('../../dist/db/sequelize');
|
5
|
+
const SelectedFile = require('../../dist/models/selected_file');
|
6
6
|
|
7
7
|
before(function() {
|
8
8
|
const execSync = require('child_process').execSync;
|
9
|
-
execSync('node ./node_modules/db-migrate/bin/db-migrate up --config
|
9
|
+
execSync('node ./node_modules/db-migrate/bin/db-migrate up --config src/db/database.json -e test');
|
10
10
|
});
|
11
11
|
|
12
12
|
beforeEach(function (done) {
|
@@ -6,7 +6,7 @@ const request = require('supertest');
|
|
6
6
|
let server;
|
7
7
|
describe('GET /mock_files', function () {
|
8
8
|
beforeEach(function () {
|
9
|
-
server = require('./../../
|
9
|
+
server = require('./../../dist/index');
|
10
10
|
});
|
11
11
|
it('receives mock_files and 200', function testSlash(done) {
|
12
12
|
request(server).
|
@@ -2,14 +2,14 @@
|
|
2
2
|
|
3
3
|
require('./common_hooks');
|
4
4
|
const request = require('supertest');
|
5
|
-
const SelectedFile = require('../../
|
5
|
+
const SelectedFile = require('../../dist/models/selected_file');
|
6
6
|
const assert = require('power-assert');
|
7
7
|
|
8
8
|
let server;
|
9
9
|
describe('GET /selected_files', function () {
|
10
10
|
context('has existing mock_data', () => {
|
11
11
|
beforeEach(function () {
|
12
|
-
server = require('./../../
|
12
|
+
server = require('./../../dist/index');
|
13
13
|
SelectedFile.create({ name: 'test.json' });
|
14
14
|
console.log('create?');
|
15
15
|
});
|
@@ -28,7 +28,7 @@ describe('GET /selected_files', function () {
|
|
28
28
|
|
29
29
|
context("hasn't existing mock_data", () => {
|
30
30
|
beforeEach(function (done) {
|
31
|
-
server = require('./../../
|
31
|
+
server = require('./../../dist/index');
|
32
32
|
SelectedFile.create({ name: 'not_exist_file.json' }).then(done());
|
33
33
|
});
|
34
34
|
it('get [] and receives 200', function testSlash(done) {
|
@@ -46,7 +46,7 @@ describe('GET /selected_files', function () {
|
|
46
46
|
|
47
47
|
describe('POST /selected_files', function () {
|
48
48
|
beforeEach(function () {
|
49
|
-
server = require('./../../
|
49
|
+
server = require('./../../dist/index');
|
50
50
|
});
|
51
51
|
it('creates new selectedFile and receives 201', function testSlash(done) {
|
52
52
|
request(server).
|
@@ -68,7 +68,7 @@ describe('POST /selected_files', function () {
|
|
68
68
|
|
69
69
|
describe('DELETE /selected_files/:id', function () {
|
70
70
|
beforeEach(function () {
|
71
|
-
server = require('./../../
|
71
|
+
server = require('./../../dist/index');
|
72
72
|
});
|
73
73
|
it('delete the selectedFile and receives 204', function testSlash(done) {
|
74
74
|
SelectedFile.create({ name: 'api/v1/joes_secret_file' }).then((result) => {
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: automock
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- joe-re
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-01-
|
11
|
+
date: 2016-01-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -124,31 +124,31 @@ files:
|
|
124
124
|
- server/.babelrc
|
125
125
|
- server/.eslintrc
|
126
126
|
- server/.gitignore
|
127
|
-
- server/app/db/database.json
|
128
|
-
- server/app/db/sequelize.js
|
129
|
-
- server/app/index.js
|
130
|
-
- server/app/models/selected_file.js
|
131
|
-
- server/app/proxy_server.js
|
132
|
-
- server/assets/index.html
|
133
|
-
- server/assets/javascripts/actions/mock_files_actions.js
|
134
|
-
- server/assets/javascripts/actions/selected_files_actions.js
|
135
|
-
- server/assets/javascripts/components/file_list.react.js
|
136
|
-
- server/assets/javascripts/components/select_buttons.react.js
|
137
|
-
- server/assets/javascripts/components/selectable_lists.react.js
|
138
|
-
- server/assets/javascripts/containers/app.react.js
|
139
|
-
- server/assets/javascripts/index.js
|
140
|
-
- server/assets/javascripts/reducers/index.js
|
141
|
-
- server/assets/javascripts/reducers/mock_files.js
|
142
|
-
- server/assets/javascripts/reducers/selected_files.js
|
143
|
-
- server/assets/stylesheets/application.scss
|
144
|
-
- server/assets/stylesheets/components/_file_list.scss
|
145
|
-
- server/assets/stylesheets/components/_select_buttons.scss
|
146
|
-
- server/assets/stylesheets/components/_selectable_list.scss
|
147
127
|
- server/bin/server
|
148
128
|
- server/gulpfile.coffee
|
149
129
|
- server/migrations/20160101185711-add-selected-files.js
|
150
130
|
- server/migrations/20160102233558-add-columns-to-selected-files.js
|
151
131
|
- server/package.json
|
132
|
+
- server/src/assets/index.html
|
133
|
+
- server/src/assets/javascripts/actions/mock_files_actions.js
|
134
|
+
- server/src/assets/javascripts/actions/selected_files_actions.js
|
135
|
+
- server/src/assets/javascripts/components/file_list.react.js
|
136
|
+
- server/src/assets/javascripts/components/select_buttons.react.js
|
137
|
+
- server/src/assets/javascripts/components/selectable_lists.react.js
|
138
|
+
- server/src/assets/javascripts/containers/app.react.js
|
139
|
+
- server/src/assets/javascripts/index.js
|
140
|
+
- server/src/assets/javascripts/reducers/index.js
|
141
|
+
- server/src/assets/javascripts/reducers/mock_files.js
|
142
|
+
- server/src/assets/javascripts/reducers/selected_files.js
|
143
|
+
- server/src/assets/stylesheets/application.scss
|
144
|
+
- server/src/assets/stylesheets/components/_file_list.scss
|
145
|
+
- server/src/assets/stylesheets/components/_select_buttons.scss
|
146
|
+
- server/src/assets/stylesheets/components/_selectable_list.scss
|
147
|
+
- server/src/db/database.json
|
148
|
+
- server/src/db/sequelize.js
|
149
|
+
- server/src/index.js
|
150
|
+
- server/src/models/selected_file.js
|
151
|
+
- server/src/proxy_server.js
|
152
152
|
- server/test/fixtures/mock/api/v1/api_test.json
|
153
153
|
- server/test/fixtures/mock/test.json
|
154
154
|
- server/test/request/common_hooks.js
|