Intial commit.

This commit is contained in:
David Diaz 2018-05-16 18:48:23 -06:00
commit a69cacdf5e
7 changed files with 130 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
node_modules/

11
.prettierrc Normal file
View File

@ -0,0 +1,11 @@
printWidth: 80
tabWidth: 4
singleQuote: true
useTabs: false
trailingComma: none
bracketSpacing: true
jsxBracketSameLine: true
parser: babylon
semi: true
requirePragma: false
proseWrap: always

37
README.md Normal file
View File

@ -0,0 +1,37 @@
# Beau Faker
Beau-faker allows you to use faker.js from within Beau.
## Installation
```
npm i -g beau-faker
```
Don't forget to add faker to your Beau plugins.
## Usage
You can let beau know you are using faked values within a request by adding the
`FakeIt` key and setting it to `true`.
```yml
endpoint: http://httpbin.org
plugins:
- faker
POST /anything:
alias: anything
fakeIt: true
payload:
name:
first: '{{name.firstName}}'
last: '{{name.lastName}}'
address: '{{address.city}}, {{address.state}}'
```
When set to `fakeIt` is set to `true` beau will run
[`Faker.faker`](https://github.com/marak/Faker.js/#fakerfake) on every value
within that request.

14
examples/beau.yml Normal file
View File

@ -0,0 +1,14 @@
endpoint: http://httpbin.org
plugins:
- faker
POST /anything:
alias: anything
fakeIt: true
payload:
name:
first: '{{name.firstName}}'
last: '{{name.lastName}}'
address: '{{address.city}}, {{address.state}}'

29
index.js Normal file
View File

@ -0,0 +1,29 @@
const Faker = require('faker');
class BeauFaker {
constructor(registry, settings = {}) {
registry.addPreRequestModifier(this.fakeItTillYouMakeIt.bind(this));
}
fakeItTillYouMakeIt(request, orig) {
if (!orig.FAKEIT) return request;
this.fakeIt(request.body);
return request;
}
fakeIt(body) {
Object.keys(body).forEach(key => {
if (typeof body[key] === 'string') {
body[key] = Faker.fake(body[key]);
} else if (typeof body[key] === 'object') {
this.fakeIt(body[key]);
}
});
return body;
}
}
module.exports = BeauFaker;

13
package-lock.json generated Normal file
View File

@ -0,0 +1,13 @@
{
"name": "beau-faker",
"version": "0.0.1",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"faker": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/faker/-/faker-4.1.0.tgz",
"integrity": "sha1-HkW7vsxndLPBlfrSg1EJxtdIzD8="
}
}
}

25
package.json Normal file
View File

@ -0,0 +1,25 @@
{
"name": "beau-faker",
"version": "0.0.1",
"description": "A Faker.js plugin for Beau",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "git+https://github.com/Seich/beau-faker.git"
},
"keywords": [
"beau"
],
"author": "David Diaz",
"license": "MIT",
"bugs": {
"url": "https://github.com/Seich/beau-faker/issues"
},
"homepage": "https://github.com/Seich/beau-faker#readme",
"dependencies": {
"faker": "^4.1.0"
}
}