1

J'ai créé un appareil qui ressemble un peu à ceci.Impossible de modifier l'appareil de mirage Ember à partir du test d'acceptation

// mirage/fixtures/people.js 
export default { 
     'people': [ 
     { 
      'id': 1, 
      'name': 'Ram', 
     }, 
     { 
      'id': 2, 
      'name': 'Raja', 
     } 
     ] 
    } 

À l'intérieur de mon test d'acceptation, j'utilise cette matrice. Mais dans mon test, je veux modifier ce peuple tableau et ajouter, supposons un autre objet

{ 
    'id': 3, 
    'name': 'John', 
} 

Note: Je ne veux pas utiliser les usines comme je ne veux pas que toutes les données soient générées dynamiquement, donc je veux profiter de cette array from fixtures, placez mon nouvel objet dans ce tableau, puis renvoyez-le. Quelle est la bonne façon de le faire?

Note2: Ne suggérez pas d'ajouter cet objet dans les appareils lui-même, car je souhaite ajouter de manière dynamique des articles à l'appareil en fonction des conditions de mon test.

+1

Je suis un peu confus. Quelle version de Mirage utilisez-vous? AFAIK 'server.create' est utilisé uniquement avec les usines. Pour charger les données de l'appareil, vous devez exécuter ['server.loadFixtures()'] (http://www.ember-cli-mirage.com/docs/v0.3.x/configuration/#loadFixtures) –

+0

Hi @RamyBenAroya , dans mon config.js pour mirage, je fais 'importer des gensFromFixture à partir de '/ mirage/fixtures/people';' 0. ('/ people', (schema, request) => {' 'return peopleFromFixture;' '});' – Siwalik

+0

Cela semble incorrect. Vous ne créez jamais les modèles dans le mirage db. Vous avez essentiellement créé votre propre petite base de données pour les personnes, qui est l'objet exporté dans '/ mirage/fixtures/people'. –

Répondre

1

C'était assez simple. Dans la configuration de mirage, nous ne devrions pas faire cela

// import peopleFromFixture from '/mirage/fixtures/people'; 
// this.get('/people', (schema, request) => { 
// return peopleFromFixture; }); 

au lieu de lire les données des usines et remplir les valeurs de fixation d'origine avec server.loadFixtures('people').

Alors config.js ressembleront =>

this.get('/people'); 

Définir votre usine comme celui-ci =>

import { Factory } from 'ember-cli-mirage'; 
export default Factory.extend({ 
    id(i) { return i+1; }, 
    name() { return faker.name.findName(); } 
}); 

Dans votre cas de test, les valeurs d'origine et remplir de nouvelles comme celui-ci =>

server.loadFixtures('people'); 
server.create('people', { name: 'John' });