小编del*_*eli的帖子

如何使用Velocity + Jasmine测试自定义Meteor方法

我有一个收集'锻炼'如下:

Workouts = new Mongo.Collection('workouts');

Meteor.methods({
  workoutInsert: function () {
    var user = Meteor.user();

    check(user._id, String);

    var workout = {
      completed: false,
      createdAt: new Date(),
      userId: user._id
    };

    var workoutId = Workouts.insert(workout);

    return {
      _id: workoutId
    };
  }
});
Run Code Online (Sandbox Code Playgroud)

我想知道:

1)对于这种方法,Velocity + Jasmine测试会是什么样的?我不确定从哪里开始,真的很感激和榜样!

2)这是定义此方法并将其称为客户端方法的最佳实践吗?或者我应该创建一个Workout类并从该类的实例方法添加调用此方法?或者我应该将Workouts扩展为它自己的类并为其添加实例方法?

velocity jasmine meteor

6
推荐指数
1
解决办法
875
查看次数

如何生成我用 jose.jwt.decode 解码的 RS256 签名令牌

我有一个函数,它接收一个令牌,对其进行解码,然后使用有效负载来执行一些逻辑。我想用我操纵的声明来生成令牌以测试该函数。

我从https://mkjwk.org/生成了一个密钥对,并按以下方式使用它:

    from jose import jwt

    claims = {"hello": "world"}
    key = {
        "kty": "RSA",
        "d": "RSjC9hfDtq2G3hQJFBI08hu3CJ6hRRlhs-u9nMFhdSpqhWFPK3LuLVSWPxG9lN7NQ963_7AturR9YoEvjXjCMZFEEqewNQNq31v0zgh9k5XFdz1CiVSLdHo7VQjuJB6imLCF266TUFvZwQ4Gs1uq6I6GCVRoenSe9ZsWleYF--E",
        "e": "AQAB",
        "use": "sig",
        "kid": "1234567890",
        "alg": "RS256",
        "n": "thBvC_I9NciW6XqTxUFMZaVVpvGx6BvLHd3v8Visk_6OoDCVXF_6vNktNi6W7CBkuHBqGyuF0wDFrHcZuZq_kLKI6IRofEzKyUoReOyYRlPt5ar64oDO-4mwH47fb99ILW94_8RpQHy74hCnfv7d888YaCmta9iOBOvggcvxb5s"
    }

    token = jwt.encode(
        {"hello": "world"},
        key,
        algorithm="RS256",
    )

    jwt.decode(token, key, algorithms="RS256") == claims
Run Code Online (Sandbox Code Playgroud)

以上是给我一个jose.exceptions.JWTError: Signature verification failed.错误。

为什么是这样?我如何生成一个令牌,我可以用我想要的声明正确解码?

python jwt python-jose

4
推荐指数
1
解决办法
3711
查看次数

carrierwave图像上传到s3"主机名与证书错误不匹配"

我首先按照此railscast的指示开始工作:

http://railscasts.com/episodes/253-carrierwave-file-uploads

然后我按照这里的指示连接了s3:

http://railgaadi.wordpress.com/2012/06/03/saving-files-in-amazon-s3-using-carrierwave-and-fog-gem/

我的image_uploader.rb文件:

class ImageUploader < CarrierWave::Uploader::Base
  include CarrierWave::RMagick
  storage :fog

  def store_dir
    "development/uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end

  version :iphone do
    process :resize_to_limit => [320, 160]
  end
end
Run Code Online (Sandbox Code Playgroud)

还有我的fog.rb文件:

CarrierWave.configure do |config|
  config.fog_credentials = {
    :provider               => 'AWS',       # required
    :aws_access_key_id      => 'xxx',       # required
    :aws_secret_access_key  => 'xxx',       # required
  }
  config.fog_directory  = 'goodlife.carrierwave'                     # required

end
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

主机名"goodlife.carrierwave.s3-us-west-1.amazonaws.com"与服务器证书不匹配

有什么建议?谢谢!

ruby-on-rails amazon-s3 carrierwave

2
推荐指数
1
解决办法
1927
查看次数

响应式设计不适用于heroku部署的rails应用程序?

我最近部署了一个rails应用程序:http://secret-brook-8909.herokuapp.com/

我打算在iphone 4s上看一下它的外观:http://responsive.victorcoulon.fr/

如果你查看我的rails应用程序的样式表,你会发现我将容器的所有宽度硬编码为320px.但是当我在我的iphone上的浏览器上打开它时,它看起来像是在更大的分辨率屏幕上打开.此外,在iPhone上如果单击配置文件按钮,该按钮看起来与普通浏览器上的按钮不同.

我该怎么做才能解决这些问题?

html css ruby-on-rails heroku responsive-design

1
推荐指数
1
解决办法
1575
查看次数

用黄瓜测试omniauth

我正在寻找帮助测试黄瓜的omniauth认证.我尝试过一个教程(http://samuelmullen.com/2011/05/simple-integration-testing-with-cucumber-and-omniauth/),但似乎根本没有调用会话控制器.

这是我到目前为止:

功能/支持/ env.rb:

Capybara.default_host = 'example.org'
OmniAuth.config.test_mode = true
OmniAuth.config.add_mock(:twitter, {
  :uid => '12345',
  :info => {
    :name => 'twitteruser',
  }
})

OmniAuth.config.add_mock(:facebook, {
  :uid => '12345',
  :info => {
    :name => 'facebookuser'
  }
})
Run Code Online (Sandbox Code Playgroud)

步骤定义:

Given /^I am signed in with provider "(.*)"$/ do |provider|
  visit "/auth/#{provider.downcase}"
end
Run Code Online (Sandbox Code Playgroud)

场景:

Scenario: a user can log into facebook
  Given I am signed in with provider "facebook"
  And I am on the profile page for "facebookuser"
  Then I should …
Run Code Online (Sandbox Code Playgroud)

cucumber omniauth ruby-on-rails-4

1
推荐指数
1
解决办法
1005
查看次数