Need advice about testing using Chimp.js/Mocha in Meteor.js

272 Views Asked by At

I'm trying to teach myself testing with Meteor but there is so much conflicting and outdated info online it's really difficult to work out what I need to do.

My current situation it that I have an application using the latest Meteor version (and the imports folder structure).

I've installed chimp globally and have created a /tests directory.

My first test is using chimp/mocha to fill in a form and try to insert something to the database. I'm also using the xolvio/backdoor package and running chimp like so

chimp --ddp=http://localhost:3000 --mocha --path=tests

Here's my test code:

describe('Chimp Mocha', function() {
    describe( 'Create a Client', function() {

        it( 'should fill in add client form', function() {
            browser.setValue('#clientName', 'Test')
                    .setValue('#clientEmail', '[email protected]')
                    .selectByValue('#numberTeamMembers', '25')
                    .submitForm('#createClient')
        });

        it( 'should check the collections for new client data', function() {
            let getClient = server.execute( function() {
              return Clients.findOne({ name: 'Test' });
            });

            expect( getClient.name ).to.equal( 'Test' );
        });

        after( function() {
            server.execute( function() {
              let client = Clients.findOne( { name: 'Test' } );
              if ( client ) {
                Clients.remove( client._id );
              }
            });
        });


    });
});

This is throwing an error that Clients is undefined

However, if I add

import { Clients } from '/imports/api/clients/clients.js';

I get this error Error: Cannot find module '/imports/api/clients/clients.js'

What am I doing wrong? Should I be using chimp? Any help would really be appreciated because I don't find the Meteor guide very clear about this!

Thanks

1

There are 1 best solutions below

0
Xolv.io On

You need to use require like this:

require('/imports/api/clients/clients').Clients

See here for an example.