automock 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -1
  3. data/README.md +6 -6
  4. data/Rakefile +2 -1
  5. data/bin/server +1 -1
  6. data/bin/setup +1 -2
  7. data/lib/automock/response_mock.rb +1 -1
  8. data/lib/automock/version.rb +1 -1
  9. data/server/.babelrc +1 -1
  10. data/server/.gitignore +1 -0
  11. data/server/bin/server +1 -1
  12. data/server/gulpfile.coffee +17 -9
  13. data/server/package.json +3 -0
  14. data/server/{assets → src/assets}/index.html +0 -0
  15. data/server/{assets → src/assets}/javascripts/actions/mock_files_actions.js +0 -0
  16. data/server/{assets → src/assets}/javascripts/actions/selected_files_actions.js +0 -0
  17. data/server/{assets → src/assets}/javascripts/components/file_list.react.js +0 -0
  18. data/server/{assets → src/assets}/javascripts/components/select_buttons.react.js +0 -0
  19. data/server/{assets → src/assets}/javascripts/components/selectable_lists.react.js +0 -0
  20. data/server/{assets → src/assets}/javascripts/containers/app.react.js +0 -0
  21. data/server/{assets → src/assets}/javascripts/index.js +0 -0
  22. data/server/{assets → src/assets}/javascripts/reducers/index.js +0 -0
  23. data/server/{assets → src/assets}/javascripts/reducers/mock_files.js +0 -0
  24. data/server/{assets → src/assets}/javascripts/reducers/selected_files.js +0 -0
  25. data/server/{assets → src/assets}/stylesheets/application.scss +0 -0
  26. data/server/{assets → src/assets}/stylesheets/components/_file_list.scss +0 -0
  27. data/server/{assets → src/assets}/stylesheets/components/_select_buttons.scss +0 -0
  28. data/server/{assets → src/assets}/stylesheets/components/_selectable_list.scss +0 -0
  29. data/server/{app → src}/db/database.json +0 -0
  30. data/server/{app → src}/db/sequelize.js +0 -0
  31. data/server/{app → src}/index.js +16 -14
  32. data/server/{app → src}/models/selected_file.js +0 -0
  33. data/server/{app → src}/proxy_server.js +0 -0
  34. data/server/test/request/common_hooks.js +3 -3
  35. data/server/test/request/mock_files_test.js +1 -1
  36. data/server/test/request/selected_files_test.js +5 -5
  37. metadata +22 -22
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 33ef4c2d67e3a12fc925e198fa932dbfaf626803
4
- data.tar.gz: 301c0a8c992859c8a96de799436f9e3412360113
3
+ metadata.gz: c29cacf8edc506987577004177435059b9bc3599
4
+ data.tar.gz: 9e2f0ce30c6f3cb6091576750beae29ffc86f87b
5
5
  SHA512:
6
- metadata.gz: de34a6166ff4be7bc7c69d8dff942190a07f3edcc6b9177f2bad6bfdee8abeb435ba068af74109938b376e9744a318d052f1706a7eb9093c94d3e82cbfce6d20
7
- data.tar.gz: 206c5d99279b76f8b5618fb9ecf88aaa33359330a1ef4f6bcfba966b38599e5f40964f48889d36d85d121feb5e5bede804072050a440e3f4bb8885833cc953b9
6
+ metadata.gz: 065c43312fdb86f0a77b147bf09d557db387d3acbb1d4622de014ebe38040199235f43d6d89837e4132de3dbe6d908371bc1e87a5916db38efa2584c743d2789
7
+ data.tar.gz: 4dd774c0f87a685eda968a3a0617ef463c83d032da5014758fc23a5938376790230c8736a1ca7a6718b9b8f0ae0f08a4e2a1fe6cfcc728deeb0f7ec91aaef83e
data/.gitignore CHANGED
@@ -7,4 +7,4 @@
7
7
  /pkg/
8
8
  /spec/reports/
9
9
  /tmp/
10
- /spec/fixtures/data
10
+ /spec/fixtures/
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
- RSpec.describe 'users', type: :request do
57
- describe 'GET /api/v1/users', automock: true do
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.cp_r('spec/dummy/automock/data', 'spec/fixtures/', remove_destination: true)
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
@@ -1,3 +1,3 @@
1
1
  export AUTOMOCK_DATA_PATH=${PWD}/automock/data
2
2
  cd server
3
- node app/index.js
3
+ node dist/index.js
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 app/db/database.json -e dev
12
+ node node_modules/db-migrate/bin/db-migrate up --config src/db/database.json -e dev
@@ -8,7 +8,7 @@ module Automock
8
8
  end
9
9
 
10
10
  def description
11
- @example.description
11
+ @example.try(:example_group).try(:description) || @example.description
12
12
  end
13
13
 
14
14
  def method
@@ -1,3 +1,3 @@
1
1
  module Automock
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -1,3 +1,3 @@
1
1
  {
2
- presets: [ 'es2015', 'react' ]
2
+ presets: [ 'es2015', 'react', 'stage-3' ]
3
3
  }
@@ -2,3 +2,4 @@
2
2
  /node_modules/
3
3
  /npm-debug.log
4
4
  /*.db
5
+ /dist/
@@ -10,4 +10,4 @@ export AUTOMOCK_PORT=$2
10
10
  export AUTOMOCK_TARGET_PORT=$3
11
11
  export AUTOMOCK_PROXY_PORT=$4
12
12
 
13
- node app/index.js
13
+ node dist/index.js
@@ -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
- src: 'assets'
10
- dist: 'app/assets'
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.src}/**/*.html"
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.src}/javascripts/index.js"]
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.dist)
34
+ .pipe gulp.dest(@path.assetDist)
27
35
 
28
36
  gulp.task 'build:scss', ->
29
- gulp.src "#{@path.src}/**/*.scss"
37
+ gulp.src "#{@path.assetSrc}/**/*.scss"
30
38
  .pipe sass({ includePaths: [ 'node_modules' ] }).on('error', sass.logError)
31
- .pipe gulp.dest(@path.dist)
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'])
@@ -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
@@ -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
- recursive(process.env.AUTOMOCK_DATA_PATH, (_err, filePaths) => {
19
- Promise.all(filePaths.map((filePath) =>
20
- new Promise((resolve) => {
21
- fs.readFile(filePath, 'utf8', (_err2, text) => {
22
- const mockData = JSON.parse(text);
23
- mockData.name = path.relative(process.env.AUTOMOCK_DATA_PATH, filePath);
24
- resolve(mockData);
25
- });
26
- })
27
- )).then((files) => {
28
- res.status(200).send(files);
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
@@ -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('../../app/db/sequelize');
5
- const SelectedFile = require('../../app/models/selected_file');
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 app/db/database.json -e test');
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('./../../app/index');
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('../../app/models/selected_file');
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('./../../app/index');
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('./../../app/index');
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('./../../app/index');
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('./../../app/index');
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.2
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-06 00:00:00.000000000 Z
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