diff --git a/app/models/rack.js b/app/models/rack.js index ca6bd1b73ff080d8f50d2cf07585052254967901..42a99fc2fb7bca220289fa6e5b84e9c1afde9903 100644 --- a/app/models/rack.js +++ b/app/models/rack.js @@ -1,5 +1,13 @@ +import Ember from 'ember'; import DS from 'ember-data'; export default DS.Model.extend({ + name: DS.attr('string'), + nbColumns: DS.attr('number'), + nbRows: DS.attr('number'), + image: DS.attr('string'), + createdAt: DS.attr('date', {defaultValue() { return new Date(); }}), + capacity: Ember.computed('nbColumns', 'nbRows', function() { + return this.get('nbColumns')*this.get('nbRows'); }), }); diff --git a/mirage/config.js b/mirage/config.js new file mode 100644 index 0000000000000000000000000000000000000000..360d8379733d6da72855ddd7d3e7b6b8d6ed9759 --- /dev/null +++ b/mirage/config.js @@ -0,0 +1,21 @@ +export default function() { + // 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 + /* + Shorthand cheatsheet: + + this.get('/posts'); + this.post('/posts'); + this.get('/posts/:id'); + this.put('/posts/:id'); // or this.patch + this.del('/posts/:id'); + + http://www.ember-cli-mirage.com/docs/v0.2.x/shorthands/ + */ + this.namespace = 'api'; + +this.get('/racks', function(schema) { + return schema.racks.all(); + }); +} diff --git a/mirage/factories/rack.js b/mirage/factories/rack.js new file mode 100644 index 0000000000000000000000000000000000000000..9e9a0a5edc803803ab3e6eae40c8297670d69ddd --- /dev/null +++ b/mirage/factories/rack.js @@ -0,0 +1,9 @@ +import { Factory, faker } from 'ember-cli-mirage'; + +export default Factory.extend({ + name(i) { return 'rack number '+i; }, + nbColumns() { return faker.random.number({min:4, max:12}); }, + nbRows() { return faker.random.number({min:3, max:20}); }, + image() { return './img/rack_0'+faker.random.number({min:1, max:5})+'.jpg';} + +}); diff --git a/mirage/models/rack.js b/mirage/models/rack.js new file mode 100644 index 0000000000000000000000000000000000000000..1486a724095b97ee02a6e6d5dd82b7f9aa1781bc --- /dev/null +++ b/mirage/models/rack.js @@ -0,0 +1,4 @@ +import { Model } from 'ember-cli-mirage'; + +export default Model.extend({ +}); diff --git a/mirage/scenarios/default.js b/mirage/scenarios/default.js new file mode 100644 index 0000000000000000000000000000000000000000..c2c2a85f7f63e5fcd23d0f0268ef3c0440bca569 --- /dev/null +++ b/mirage/scenarios/default.js @@ -0,0 +1,12 @@ +export default function(server) { + + /* + Seed your development database using your factories. + This data will not be loaded in your tests. + + Make sure to define a factory for each model you want to create. + */ + + // server.createList('post', 10); + server.createList('rack', 32); +} diff --git a/mirage/serializers/application.js b/mirage/serializers/application.js new file mode 100644 index 0000000000000000000000000000000000000000..6d47a366907e5edea5d3d55257d4bcdc482fb50c --- /dev/null +++ b/mirage/serializers/application.js @@ -0,0 +1,4 @@ +import { JSONAPISerializer } from 'ember-cli-mirage'; + +export default JSONAPISerializer.extend({ +}); diff --git a/package.json b/package.json index dafac40fc33156228142bdf9fa04d6c02e8a8566..f588a1e540c42000c10233ae3fff76ee779bae40 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "ember-cli-htmlbars": "^1.1.1", "ember-cli-htmlbars-inline-precompile": "^0.3.6", "ember-cli-inject-live-reload": "^1.4.1", + "ember-cli-mirage": "^0.3.1", "ember-cli-qunit": "^3.1.0", "ember-cli-shims": "^1.0.2", "ember-cli-sri": "^2.1.0", diff --git a/tests/helpers/destroy-app.js b/tests/helpers/destroy-app.js index c3d4d1abb5d467ddf5f9a0b8f814c8d99d20db6d..ebbacb1a98f22473f1dfa3bdc9e6b412b6704c2f 100644 --- a/tests/helpers/destroy-app.js +++ b/tests/helpers/destroy-app.js @@ -2,4 +2,7 @@ import Ember from 'ember'; export default function destroyApp(application) { Ember.run(application, 'destroy'); + if(window.server) { + window.server.shutdown(); + } }