vendredi 8 avril 2016

How to test Ember.Router

I would like to test my router which for the sake of simplicity looks as follows:

// app.router.js
import Ember from 'ember';
import config from './config/environment';

const Router = Ember.Router.extend({
  location: config.locationType
});

Router.map(function() {
  this.route('sessions', function() {
    this.route('login');
    this.route('logout');
  });
  this.route('profile');
});

export default Router;

Is it possible to unit-test it? I tried using acceptance tests but I was not successful:

import Ember from 'ember';
import { test } from 'qunit';

import moduleForAcceptance from 'transformed-admin/tests/helpers/module-for-acceptance';

import startApp from 'transformed-admin/tests/helpers/start-app';

moduleForAcceptance('Acceptance | configuration', {
  beforeEach: function() {
    this.application = startApp();
  },

  afterEach: function() {
    Ember.run(this.application, 'destroy');
  }
});

test('should map routes correctly', function(assert) {   
  visit('/');

  const app = this.application;

  andThen(function() {
    app.Router.detect("profile"); // false
    app.Router.detect("Profile"); // false

    const a = app.Router.extend({});
    a.detect("profile"); // false
    a.detect("Profile"); // false
  });
});

What are the best practices here? Do you test Router.map() at all? Or do you rely on testing of concrete routes as a guarantee that the Router.map() is written correctly?

Aucun commentaire:

Enregistrer un commentaire