Sha256: 7c5905fac687cae949ed6680c3ec3bade2ed31290a79a57a61f091b269f86d6b

Contents?: true

Size: 1.51 KB

Versions: 2

Compression:

Stored size: 1.51 KB

Contents

require 'codeclimate-test-reporter'
CodeClimate::TestReporter.start

require 'pry'
require 'active_record'
require 'factory_girl'
require 'shoulda-matchers'
require 'guise'

if I18n.respond_to?(:enforce_available_locales)
  I18n.enforce_available_locales = false
end

ActiveRecord::Base.establish_connection(
  adapter: 'sqlite3',
  database: ':memory:'
)

ActiveRecord::Migration.verbose = false

ActiveRecord::Schema.define do
  create_table :users, force: true do |t|
    t.string :name
    t.string :email
  end

  create_table :user_roles, force: true do |t|
    t.string :name
    t.integer :user_id
  end

  create_table :people, force: true do |t|
  end

  create_table :privileges, force: true do |t|
    t.integer :employee_id
    t.string :privilege
  end
end

class User < ActiveRecord::Base
  has_guises :Technician, :Supervisor, association: :user_roles, attribute: :name
end

class Technician < User
  guise_of :User
end

class Supervisor < User
  guise_of :User
end

class UserRole < ActiveRecord::Base
  guise_for :User
end

class TechnicianUserRole < UserRole
  scoped_guise_for :User
end

class Person < ActiveRecord::Base
  has_guises :Admin, :Manager, :Reviewer, association: :permissions, attribute: :privilege, foreign_key: :employee_id, table_name: :privileges
end

class Permission < ActiveRecord::Base
  self.table_name = :privileges

  guise_for :Person, foreign_key: :employee_id
end

FactoryGirl.find_definitions
RSpec.configure do |config|
  config.order = 'random'
  config.include FactoryGirl::Syntax::Methods
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
guise-0.6.0 spec/spec_helper.rb
guise-0.5.0 spec/spec_helper.rb