0

example.com/quaunautそこで、Twitter スタイルの URL 構文を使用して、ユーザーが「quaunaut」というユーザー名を持つユーザーのユーザー ページにアクセスできるようにしようとしています。私はこれを達成することができました:

app/router.js

export default Router.map(function() {
  this.route('users.show', { path: '/:user_username' });
});

アプリ/ルート/ユーザー/show.js

export default Ember.Route.extend({
  model: function(params) {
    return this.store.find('user', { username: params.user_username }).then(function(result) {
      return result.get('firstObject');
    });
  },

  serialize: function(model) {
    return { user_username: model.get('username') };
  }
});

現在、ライブまたは 経由で実行するとember s、これは素晴らしく機能します。ただし、テストでは、何らかの理由で解決しないようです。

var application, server, USERS;
USERS = {
  'example1': [{
    id: 1,
    username: 'example1'
  }],
  'example2': [{
    id: 2,
    username: 'example2'
  }]
};

module('Acceptance: UsersShow', {
  beforeEach: function() {
    application = startApp();

    server = new Pretender(function() {
      this.get('/api/users', function(request) {
        return [
          201,
          { 'content-type': 'application/javascript' },
          JSON.stringify(USERS[request.queryParams.username])
        ];
      });
    });
  },

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

test('visiting users.show route', function(assert) {
  visit('/example1');

  andThen(function() {
    assert.equal(currentPath(), 'users.show');
    assert.equal(find('#username').text(), 'example1');
  });
});

次のテスト結果が得られます。

Acceptance: UsersShow: visiting users.show route
    ✘ failed
         expected users.show
    ✘ failed
         expected example1

それで、currentPath()解決しない理由はありますか?私がここでやろうとしていることを実装するためのより良い手段についての推奨事項もあれば、私は確かにそれを受け入れます.

4

1 に答える 1