From 76abcd6d5193c6946470bb3ac2c942fdda5ae414 Mon Sep 17 00:00:00 2001 From: zinyando Date: Thu, 12 May 2016 12:20:07 +0200 Subject: [PATCH] Install ember-cli-mirage --- app/app/mirage/config.js | 82 +++++++++++++++++++++++++++++ app/app/mirage/factories/contact.js | 20 +++++++ app/app/mirage/scenarios/default.js | 7 +++ app/bower.json | 5 +- app/package.json | 3 +- 5 files changed, 115 insertions(+), 2 deletions(-) create mode 100644 app/app/mirage/config.js create mode 100644 app/app/mirage/factories/contact.js create mode 100644 app/app/mirage/scenarios/default.js diff --git a/app/app/mirage/config.js b/app/app/mirage/config.js new file mode 100644 index 00000000..d006425e --- /dev/null +++ b/app/app/mirage/config.js @@ -0,0 +1,82 @@ +export default function() { + + // These comments are here to help you get started. Feel free to delete them. + + /* + Config (with defaults). + + Note: these only affect routes defined *after* them! + */ + // this.urlPrefix = ''; // make this `http://localhost:8080`, for example, if your API is on a different server + // this.namespace = ''; // make this `api`, for example, if your API is namespaced + // this.timing = 400; // delay for each request, automatically set to 0 during testing + + /* + Route shorthand cheatsheet + */ + /* + GET shorthands + + // Collections + this.get('/contacts'); + this.get('/contacts', 'users'); + this.get('/contacts', ['contacts', 'addresses']); + + // Single objects + this.get('/contacts/:id'); + this.get('/contacts/:id', 'user'); + this.get('/contacts/:id', ['contact', 'addresses']); + */ + + /* + POST shorthands + + this.post('/contacts'); + this.post('/contacts', 'user'); // specify the type of resource to be created + */ + + /* + PUT shorthands + + this.put('/contacts/:id'); + this.put('/contacts/:id', 'user'); // specify the type of resource to be updated + */ + + /* + DELETE shorthands + + this.del('/contacts/:id'); + this.del('/contacts/:id', 'user'); // specify the type of resource to be deleted + + // Single object + related resources. Make sure parent resource is first. + this.del('/contacts/:id', ['contact', 'addresses']); + */ + + /* + Function fallback. Manipulate data in the db via + + - db.{collection} + - db.{collection}.find(id) + - db.{collection}.where(query) + - db.{collection}.update(target, attrs) + - db.{collection}.remove(target) + + // Example: return a single object with related models + this.get('/contacts/:id', function(db, request) { + var contactId = +request.params.id; + + return { + contact: db.contacts.find(contactId), + addresses: db.addresses.where({contact_id: contactId}) + }; + }); + + */ +} + +/* +You can optionally export a config that is only loaded during tests +export function testConfig() { + +} +*/ diff --git a/app/app/mirage/factories/contact.js b/app/app/mirage/factories/contact.js new file mode 100644 index 00000000..1b3a3eab --- /dev/null +++ b/app/app/mirage/factories/contact.js @@ -0,0 +1,20 @@ +/* + This is an example factory definition. + + Create more files in this directory to define additional factories. +*/ +import Mirage/*, {faker} */ from 'ember-cli-mirage'; + +export default Mirage.Factory.extend({ + // name: 'Pete', // strings + // age: 20, // numbers + // tall: true, // booleans + + // email: function(i) { // and functions + // return 'person' + i + '@test.com'; + // }, + + // firstName: faker.name.firstName, // using faker + // lastName: faker.name.firstName, + // zipCode: faker.address.zipCode +}); diff --git a/app/app/mirage/scenarios/default.js b/app/app/mirage/scenarios/default.js new file mode 100644 index 00000000..e07271cc --- /dev/null +++ b/app/app/mirage/scenarios/default.js @@ -0,0 +1,7 @@ +export default function(/* server */) { + + // Seed your development database using your factories. This + // data will not be loaded in your tests. + + // server.createList('contact', 10); +} diff --git a/app/bower.json b/app/bower.json index b17f0403..ba2ada57 100644 --- a/app/bower.json +++ b/app/bower.json @@ -8,7 +8,10 @@ "jquery": "*", "loader.js": "^3.5.0", "qunit": "~1.20.0", - "install": "~1.0.4" + "install": "~1.0.4", + "pretender": "~0.10.1", + "lodash": "~3.7.0", + "Faker": "~3.0.0" }, "resolutions": { "jquery": ">=2.1.1", diff --git a/app/package.json b/app/package.json index d3c16066..155890d2 100644 --- a/app/package.json +++ b/app/package.json @@ -29,6 +29,7 @@ "ember-cli-htmlbars-inline-precompile": "^0.3.1", "ember-cli-inject-live-reload": "^1.4.0", "ember-cli-jshint": "^1.0.0", + "ember-cli-mirage": "0.1.13", "ember-cli-qunit": "^1.4.0", "ember-cli-release": "0.2.8", "ember-cli-sass": "5.3.1", @@ -40,4 +41,4 @@ "ember-resolver": "^2.0.3", "loader.js": "^4.0.1" } -} \ No newline at end of file +}