Издеваться над тлеющим сервисом in-repo-addon - PullRequest
0 голосов
/ 26 октября 2018

У меня есть дополнение-репо:

/ мой-приложение / Библиотека / мой-сервис / приложение / услуги / мой-service.js

import AjaxService from 'ember-ajax/services/ajax';
import ENV from '../config/environment';

export default AjaxService.extend({
    host: ENV.APP.BACKEND_URL,
    contentType: 'application/json; charset=utf-8',

    subscribe(emailAddress) {
       ...
       return this.request(url, {method: 'POST', data: data});
    }

У меня есть основной компонент приложения, который использует это дополнение in-repo.

/ мой-приложение / приложения / компоненты / мой-comp.js

import Ember from "ember";

export default Ember.Component.extend({
   myService: Ember.inject.service(),
   ...
});

И это работает, когда приложение работает нормально. У меня также есть тест для этого компонента.

/ мой-приложение / тесты / интеграция / компоненты / мой-Comp-test.js

import { moduleForComponent, test } from 'ember-qunit';
import ENV from 'my-app/config/environment';

moduleForComponent('sign-up', 'Integration | Component | my comp', {
    integration: true,
});

test('email addresses are trimmed before submission to remote service', function (assert) {
  const signupEmail = " NotAnEmail@example.com ";

  let myService = Ember.Service.extend({

    subscribeUrl() {
      return "";
    },

    request(url, payload) {
      assert.equal("NotAnEmail@example.com", payload.data.emailAddress);
      return new Ember.RSVP.Promise((res) => {
        res({message: 'success'});
      });
    }
  });
console.log("myService=", myService);
this.register('service:my-service', myService);
...

Тест пытается создать myService и расширить его, чтобы переопределить / смоделировать различные биты, чтобы проверить утверждение, чтобы убедиться, что адрес электронной почты был урезан.

Но myService всегда null. Похоже, что Ember.Service не включает аддоны in-repo при создании теста, поэтому myService не найден.

Я попытался импортировать сервис напрямую, но ember, похоже, тоже не похож на это:

import myService from 'my-app/lib/my-service/app/services/my-service/my-service';
// or
import myService from 'my-app/lib/my-service/app/services/my-service';

Это ошибка с тестом Ember? Как я могу это исправить?

...