I'm having trouble setting up my karma config document to use mockfirebase in my Jasmine unit tests.
Looks like the library to mockfirebase isn't hooked up properly.
Currently my app works fine, its just the unit tests when using mockfirebase doesnt work.
In my app I'm using Angular2, Typescript, Jasmine.
My karma config below:
module.exports = function(config) {
config.set({
basePath: '',
frameworks: ['jasmine'],
files: [
{pattern: 'node_modules/systemjs/dist/system.src.js', included: true, watched: true},
{pattern: 'node_modules/angular2/bundles/angular2.js', included: true, watched: true},
{pattern: 'node_modules/angular2/bundles/testing.js', included: true, watched: true},
{pattern: 'node_modules/angular2/bundles/router.dev.js', included: true, watched: true},
{pattern: 'node_modules/angular2/bundles/http.js', included: true, watched: true},
enter code here
//mockfirebase here??????????????
{pattern: 'node_modules/mockfirebase/browser/mockfirebase.js', included: true, watched: true},
{pattern: 'src/firebase/firebase.js', included: true, watched: true},
{pattern: 'karma-test-shim.js', included: true, watched: true},
{pattern: 'src/**/*.js', included: false, watched: true},
{pattern: 'src/**/*.html', included: false, watched: true},
{pattern: 'src/**/*.css', included: false, watched: true},
{pattern: 'src/**/*.ts', included: false, watched: false},
{pattern: 'src/**/*.js.map', included: false, watched: false}
],
proxies: {
"/app/": "/base/src/app/"
},
reporters: ['progress'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['Chrome'],
singleRun: false
})
}
This is my unit test:
import { it, iit, describe, expect, inject, injectAsync, beforeEachProviders, fakeAsync, tick } from 'angular2/testing';
import { FirebaseService } from '../app/firebase-service';
//Doesnt seem to like it (with or without it imported??):
import { MockFirebase } from 'mockfirebase';
describe('Firebase Service Calls', () => {
beforeEachProviders(()=> [FirebaseService]);
//beforeEach(() => MockFirebase.override());
//Different way of injecting a service for a test.
it('saves an item to Firebase', inject([FirebaseService], (service) => {
let refUsers = new Firebase("http://ift.tt/1Ip9OwM");
spyOn(service.refUsers, 'push');
var response = service.addUser({ item: true });
expect(service.refUsers.push).toHaveBeenCalled();
}));
});
This is the error message I get in my typescript compiler:
*Cannot find name "mockfirebase"
Thank you in advance.
Aucun commentaire:
Enregistrer un commentaire