Почему мой впрыск Firebase не регистрируется и не доступен для приемочных испытаний? - PullRequest
0 голосов
/ 12 января 2019

Я импортировал Firebase SDK в свое приложение Ember. Есть инициализатор, который внедряет Firebase во все приложение следующим образом:

export function initialize(application) {

  const config = {
    apiKey: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    authDomain: "my-app-xxxxxx.firebaseapp.com",
    databaseURL: "https://my-app-xxxxxx.firebaseio.com",
    projectId: "my-app-xxxxxx",
    storageBucket: "my-app-xxxxxx.appspot.com",
    messagingSenderId: "xxxxxx"
  }

  if( typeof firebase !== 'undefined'  && firebase) {
    firebase.initializeApp(config);
    application.register('firebase:home', firebase, {instantiate: false});
    application.inject('route', 'firebase', 'firebase:home');
  }
}

export default {
  name: 'firebase',
  initialize
};

Это инициализатор, который правильно внедряет firebase и делает его доступным во всех моих маршрутах и ​​шаблонах, насколько я могу судить. Я могу использовать аутентификацию и читать, правильно писать в базу данных.

Проблема возникает, когда я пытаюсь написать приемочный тест. Например, простой тест, в котором я ввожу основной маршрут:

import { module, test } from 'qunit';
import { visit, currentURL } from '@ember/test-helpers';
import { setupApplicationTest } from 'ember-qunit';

module('Acceptance | login', function(hooks) {

  setupApplicationTest(hooks);

  test('visiting /login', async function(assert) {

    await visit('/home');

    debugger;
    assert.equal(currentURL(), '/home');


  });
});

При попадании на маршрут home мгновенно выдается окно предупреждения ReferenceError: firebase is not defined. Не должен ли инициализатор справиться с этим?

Я не понимаю, почему firebase легко доступен, и все работает, когда приложение работает нормально, но это undefined при использовании с приемочным тестом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...