methods.tests.js 1.48 KB
/* eslint-env mocha */
/* eslint-disable func-names, prefer-arrow-callback */

import { Meteor } from 'meteor/meteor';
import { assert } from 'meteor/practicalmeteor:chai';
import { resetDatabase } from 'meteor/xolvio:cleaner';
import { Factory } from 'meteor/dburles:factory';
import { Documents } from './documents.js';
import { insertDocument, updateDocument, removeDocument } from './methods.js';

describe('Documents methods', function () {
  beforeEach(function () {
    if (Meteor.isServer) {
      resetDatabase();
    }
  });

  it('inserts a document into the Documents collection', function () {
    insertDocument.call({ title: 'You can\'t arrest me, I\'m the Cake Boss!' });
    const getDocument = Documents.findOne({ title: 'You can\'t arrest me, I\'m the Cake Boss!' });
    assert.equal(getDocument.title, 'You can\'t arrest me, I\'m the Cake Boss!');
  });

  it('updates a document in the Documents collection', function () {
    const { _id } = Factory.create('document');

    updateDocument.call({
      _id,
      update: {
        title: 'You can\'t arrest me, I\'m the Cake Boss!',
      },
    });

    const getDocument = Documents.findOne(_id);
    assert.equal(getDocument.title, 'You can\'t arrest me, I\'m the Cake Boss!');
  });

  it('removes a document from the Documents collection', function () {
    const { _id } = Factory.create('document');
    removeDocument.call({ _id });
    const getDocument = Documents.findOne(_id);
    assert.equal(getDocument, undefined);
  });
});