Search code examples
karma-runneraurelia

aurelia/skeleton-plugin cant run test on custum element


i have created an aurelia plugin using the skelton-plugin https://github.com/aurelia/skeleton-plugin i am now looking at writing unit tests for it. i am stuggling to get a unit test running for a custom element ive added to the project. i started with the 'testing a custom element' example from http://aurelia.io/hub.html#/doc/article/aurelia/testing/latest/testing-components/3

template:

<template>
  <div class="firstName">${firstName}</div>
</template>

vm

import {bindable} from 'aurelia-framework';

export class MyComponent {
  @bindable firstName;
}

i added this to the src folder.

my test code is

import {StageComponent} from 'aurelia-testing';
import {bootstrap} from 'aurelia-bootstrapper';

describe('MyComponent', () => {
  let component;

  beforeEach(() => {
    component = StageComponent
      .withResources('my-component')
      .inView('<my-component first-name.bind="firstName"></my-component>')
      .boundTo({ firstName: 'Bob' });
  });

  it('should render first name', done => {
    component.create(bootstrap).then(() => {
      const nameElement = document.querySelector('.firstName');
      expect(nameElement.innerHTML).toBe('Bob');
      done();
    }).catch(e => { console.log(e.toString()) });
  });

  afterEach(() => {
    component.dispose();
  });
});

i jspm installed aurelia-bootstrapper and aurelia-testing to get it running. im now getting the error

Error{stack: '(SystemJS) XHR error (404 Not Found) loading http://localhost:9876/base/my-component.js

so it looks like karma cant find my component. i checked the karma.config file and the jspm loadFiles: ['test/setup.js', 'test/unit/**/*.js'], looks correct. has any one run into a similar issue?


Solution

  • solved the issue.

    in karma.config.js file needed to change serveFiles: ['src//.'] to serveFiles: ['src//*.js', 'src/**/*.html']