Firestore: MyCollection.valueChanges () не является функцией - PullRequest
0 голосов
/ 18 апреля 2019

У меня проблема при использовании ng test: мои тесты не работают из-за этой ошибки:

this.TerrariumsCollection.valueChanges () не является функцией

Эта проблема появляется только тогда, когда я использую команду теста ng.В противном случае все кажется хорошим.

вот мой файл TS:

TerrariumsCollection  : AngularFirestoreCollection<Terrarium>;
Terrarium             : Observable<Terrarium[]>


  constructor(private afs : AngularFirestore) { 

    this.TerrariumsCollection   = this.afs.collection('Terrarium');
    this.Terrarium              = this.TerrariumsCollection.valueChanges();


  }

вот моя спецификация для модульного теста:


import { TestBed } from '@angular/core/testing';

import { MesTerrasService } from './mes-terras.service';
import { BehaviorSubject } from 'rxjs';
import { AngularFirestore, AngularFirestoreModule, AngularFirestoreCollection } from 'angularfire2/firestore';
import { AngularFireModule } from 'angularfire2';

import { environment } from '../environments/environment';
export const firebaseConfig = environment.firebaseConfig;

describe('MesTerrasService', () => {
  beforeEach(() => TestBed.configureTestingModule({
    providers: [
      { provide: AngularFirestore, useValue: FirestoreStub },
    ],
    imports: [
      AngularFireModule.initializeApp(firebaseConfig),
      AngularFirestoreModule,
      AngularFirestoreCollection
    ]
  }));

  it('should be created', () => {
    const service: MesTerrasService = TestBed.get(MesTerrasService);
    expect(service).toBeTruthy();
  });

  const FirestoreStub = {
    collection: (name: string) => ({
      doc: (_id: string) => ({
        valueChanges: () => new BehaviorSubject({ foo: 'bar' }),
        set: (_d: any) => new Promise((resolve, _reject) => resolve()),
      }),
    }),
  };
});

Когда я использую ng serve, нет проблем, это работает.Я сравнил мой app.module со всеми модулями, которые я импортировал в мою спецификацию, все кажется хорошим.Может быть, я забыл один?

Можете ли вы помочь мне, пожалуйста?

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