Hi,
I have a problem with my unit tests on server side.
My test is the next :
import { Meteor } from 'meteor/meteor';
import { Article } from '../../../imports/models/article';
import { Articles } from '../../../imports/collections/articles';
import './articles';
import { Random } from 'meteor/random';
import {Rate} from "../../../imports/models/rate.model";
import { expect, assert } from 'chai';
import {Observable} from "rxjs/Observable";
if (Meteor.isServer) {
describe('Articles', () => {
const userId = Random.id();
beforeEach(() => {
StubCollections.add([Articles]);
StubCollections.stub();
Articles.remove({});
});
it('can delete owned article', async (done) => {
const articleId = await Articles.insert({
title: "string",
content: "string",
owner: userId,
picture_url: "string",
source: "string",
createdAt: new Date()
}).toPromise();
const deleteArticle = Meteor.server.method_handlers["removeArticle"];
// // Run the method with `this` set to the fake invocation
//
const invocation = {userId};
deleteArticle.apply(invocation, [articleId]);
console.log(articleId);
const count = await Articles.find({}).count().toPromise();
// Verify that the method does what we expected
expect(count).equal(0);
StubCollections.restore();
done()
});
});
}
And I can’t import stub-collection because typescript not found it.
I have try to had meteor server package on tsconfig.json but I did not suceed.
And when I delete StubCollection I have a Timeout of 2 seconde when “Articles.find({})”
Have you a idea for resolve it ?