automock 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
+
[](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
|