Skip to content

Commit

Permalink
Improve test coverage
Browse files Browse the repository at this point in the history
  • Loading branch information
mirrec committed Dec 6, 2023
1 parent a90e60f commit 0bd4bd0
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 10 deletions.
2 changes: 1 addition & 1 deletion app/models/group_membership.rb
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ def self.create_signing_tags_for(group_membership)
find_or_create_signing_tag(
tags_scope: tenant.signed_by_tags,
user_group: user_group,
tag_name: "Podpisané - #{user.name}"
tag_name: "Podpísané - #{user.name}"
)
end

Expand Down
16 changes: 8 additions & 8 deletions app/models/tenant.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,24 +10,24 @@
#
class Tenant < ApplicationRecord
has_many :users, dependent: :destroy
has_many :groups, dependent: :destroy

has_one :all_group
has_one :signer_group
has_one :admin_group
has_many :groups, dependent: :destroy
has_many :custom_groups

has_one :draft_tag
has_one :everything_tag
has_one :signature_requested_tag
has_one :signed_tag

has_many :boxes, dependent: :destroy
has_many :automation_rules, class_name: "Automation::Rule", dependent: :destroy
has_many :tags, dependent: :destroy
has_many :signature_requested_from_tags
has_many :signed_by_tags
has_many :simple_tags

has_many :boxes, dependent: :destroy
has_many :automation_rules, class_name: "Automation::Rule", dependent: :destroy
has_many :filters

after_create :create_default_objects
Expand Down Expand Up @@ -69,15 +69,15 @@ def make_admins_see_everything!
private

def create_default_objects
create_all_group!(name: "all")
create_admin_group!(name: "admins")
create_signer_group!(name: "signers")

create_draft_tag!(name: "Rozpracované", visible: true)
create_everything_tag!(name: "Všetky správy", visible: false)
create_signer_group!(name: "signers")
create_signature_requested_tag!(name: "Na podpis", visible: true)
create_signed_tag!(name: "Podpísané", visible: true)

create_all_group!(name: "all")
create_admin_group!(name: "admins")

make_admins_see_everything!
end
end
38 changes: 37 additions & 1 deletion test/models/group_membership_test.rb
Original file line number Diff line number Diff line change
@@ -1,14 +1,50 @@
require "test_helper"

class GroupMembershipTest < ActiveSupport::TestCase
test 'after create callback creates signature tags for a user if the user is added to the signers group' do
test "creates signature tags for a user if a group is the signers group" do
user = users(:basic)
signers_group = groups(:ssd_signers)

GroupMembership.create!(user: user, group: signers_group)

user.reload
assert user.signature_requested_from_tag
assert_equal user.signature_requested_from_tag.groups, [user.user_group]
assert user.signed_by_tag
assert_equal user.signed_by_tag.groups, [user.user_group]
end

test "handles creation signature tags properly if some signing already exists" do
tenant = tenants(:ssd)
user = users(:basic)
signers_group = groups(:ssd_signers)

SignedByTag.create!(name: "something", groups: [user.user_group], tenant: tenant)
SignatureRequestedFromTag.create!(name: "Na podpis - #{user.name}", tenant: tenant)

GroupMembership.create!(user: user, group: signers_group)

user.reload

assert user.signature_requested_from_tag
assert_equal user.signature_requested_from_tag.name, "Na podpis - Basic user"
assert_equal user.signature_requested_from_tag.groups, [user.user_group]

assert user.signed_by_tag
assert_equal user.signed_by_tag.name, "Podpísané - Basic user"
assert_equal user.signed_by_tag.groups, [user.user_group]
end

test "destroys signature_requested_from tags but keeps signed_by tags for a user if a group is the signers group" do
user = users(:basic)
signers_group = groups(:ssd_signers)

membership = GroupMembership.create!(user: user, group: signers_group)
membership.destroy

user.reload

assert_nil user.signature_requested_from_tag
assert user.signed_by_tag
end
end

0 comments on commit 0bd4bd0

Please sign in to comment.