我在帮助程序中有一个方法,它根据存储在cookie中的标记和代码来确定用户是否具有特定标记(enabled
)。
def user_enabled?
Code.joins({tags: :user}).
where(code: cookies[:user_code]).
where(users: {enabled: true})
exists?
end
基本上,标签与用户和带标签的代码相关联。
我不确定如何在我的规范中重新创建它,以便查询执行所需的所有记录。到目前为止,我有:
it 'returns true when enabled is checked' do
tag = create(:tag, user: create(:user, enabled: true))
Code.create(code: 'enabled', tags: [tag])
cookies[:user_code] = 'enabled'
expect(user_enabled?).to be_truthy
end
但是这会失败,我不确定我错过了什么。
答案 0 :(得分:0)
以下是我为解决这个问题所采取的措施:
Context 'some context'
let!(:tag) { create(:tag, user: create(:user)) }
let!(:code) { create(:code, code: 'enabled', tags: [tag]) }
it 'returns true when enabled is checked' do
cookies[:user_code] = 'enabled'
expect(user_enabled?).to be_truthy
end
end