首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在测试中使用ember-simple-auth-ephemeral store发出经过身份验证的请求

在测试中使用ember-simple-auth-ephemeral store发出经过身份验证的请求
EN

Stack Overflow用户
提问于 2014-12-01 09:28:06
回答 1查看 259关注 0票数 0

我有一个rails后端和ember cli项目,它们使用ember-simple-auth devise,我正在尝试获得一个Qunit测试来覆盖一个经过身份验证的post to rails。我不是在模仿任何后端调用。

我的测试设置如下:

代码语言:javascript
复制
test('successfully POSTing', function(){
  // helper to signin through ember
  signIn();

  andThen(function(){
    // fill out a form and submit it  
    equal(find('li').text(), 'aodsfiu');

  })
});

我在我的测试环境中使用simple-auth-session-store:ephemeral

signIn()助手运行良好:我可以从ember和rails日志中看到它提交表单并返回状态201,但是下面的请求返回状态401,比如身份验证信息在下面的请求中从未保存过/没有使用过。

如果我手动测试,一切正常,这使我认为这是测试环境的问题,但当我删除store:ephemeral时,我仍然从我的服务器返回状态401

如何在测试环境中使用ember-simple-auth向我的服务器发出经过身份验证的请求?有没有办法直接访问测试会话数据并设置user-tokenemail,这样rails就会认为我通过了身份验证?

环境:

代码语言:javascript
复制
if (environment === 'test') {
    // simple auth local storage stuff
    ENV['simple-auth'] = {
      authorizer: 'simple-auth-authorizer:devise',
      crossOriginWhitelist: ['*'],
      store: 'simple-auth-session-store:ephemeral',

    }
    // Testem prefers this...
    ENV.baseURL = '/';
    ENV.locationType = 'auto';

    // keep test console output quieter
    ENV.APP.LOG_ACTIVE_GENERATION = false;
    ENV.APP.LOG_VIEW_LOOKUPS = false;

    ENV.APP.rootElement = '#ember-testing';
  }
EN

回答 1

Stack Overflow用户

发布于 2014-12-01 16:10:20

临时存储只确保会话实际上不是持久的,这样测试就不会相互影响。你所看到的可能是Ember Simple Auth的跨域授权策略造成的--只要你不把发送给它的源请求列入白名单,它就不会被授权,这样你的令牌就不会暴露在任意网站上。请参阅API docs

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27220541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档