Skip to content

Specs fail if user itself is resourcified #590

@eimantas

Description

@eimantas

I have the following setup:

class User < ApplicationRecord
  rolify
  resourcify
end

class Subject < ApplicationRecord
  resourcify
end

and the following spec:

require 'rails_helper'

RSpec.describe Subject, type: :model do
  it 'can give access to users' do 
    user = User.create!()
    subject = Subject.create!()
    user.add_role :admin, subject
    expect(subject.applied_roles).to include(user.roles.first)
  end
end

The above spec fails. It passes as soon as I remove the resourcify from User class. The failure message I get is:

% bundle exec rspec spec/models/subject_spec.rb:7
Run options: include {:locations=>{"./spec/models/subject_spec.rb"=>[7]}}
F

Failures:

  1) Subject can give access to users
     Failure/Error: expect(subject.applied_roles).to include(user.roles.first)
     
       expected [] to include #<Role id: 1, name: "admin", resource_type: "User", resource_id: 1, created_at: "2023-03-14 06:51:29.467423000 +0000", updated_at: "2023-03-14 06:51:29.482289000 +0000">
       Diff:
       @@ -1 +1 @@
       -[#<Role id: 1, name: "admin", resource_type: "User", resource_id: 1, created_at: "2023-03-14 06:51:29.467423000 +0000", updated_at: "2023-03-14 06:51:29.482289000 +0000">]
       +[]
       
     # ./spec/models/subject_spec.rb:9:in `block (2 levels) in <top (required)>'

Finished in 0.07391 seconds (files took 1.47 seconds to load)
1 example, 1 failure

Failed examples:

rspec ./spec/models/subject_spec.rb:5 # Subject can give access to users

System info:

% uname -a 
Darwin machine.lan 22.3.0 Darwin Kernel Version 22.3.0: Mon Jan 30 20:42:11 PST 2023; root:xnu-8792.81.3~2/RELEASE_X86_64 x86_64
% ruby -v
ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-darwin21]
% rails --version
Rails 7.0.4.3

Rolify v6.0.1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions