NGXS: тестирование действия - PullRequest
       7

NGXS: тестирование действия

0 голосов
/ 07 сентября 2018

Я очень плохо знаком с angular & ngxs и пишу небольшой сервис сообщений, дающий возможность отправлять и получать сообщения через хранилище ngxs, подключенное к firebase.

Я пытаюсь написать тест для метода отправки сообщений. Поскольку я не очень-то согласен с официальной документацией ngxs для тестирования, у меня возникли некоторые проблемы с этим.

Итак, моя текущая (не работающая) попытка этого теста:

describe('SendMessage', () => {
    let store: Store;
    let testData: Message = {
    author: 'testauthor',
    text: 'testtext'
}; 

    beforeEach(async(() => {

        TestBed.configureTestingModule({
        imports: [NgxsModule.forRoot([MessageState]),
            NgxsModule.forRoot([AngularFirestore])],
        }).compileComponents();

        store = TestBed.get(Store);
        store.reset(TEST_STATE);
     }));

    it('sends Messages', async(() => {
        store.dispatch(new fromMessage.AddMessage(testData));
        store.selectOnce(state => MessageState.getSentMessages).subscribe(message => {
           expect(message).toEqual(testData);
    })
   }))   
});

с TEST_STATE

export const TEST_STATE = {
    messages: [{
    author: 'testauthor',
    text: 'testtext'
    }]
}

Запустив тест, я получаю ошибку Failed: States must be decorated with @State() decorator.

Как правильно использовать TEST_STATE в качестве моего состояния для тестирования AddMessage? Как должны выглядеть мои отправки и выборки?

Как я уже сказал, я новичок в ngxs и тестировании, так что извините, если мой Код не так хорош. Спасибо за вашу помощь!

...