diff --git a/app/models/enterprise_token.rb b/app/models/enterprise_token.rb index 809cbc579ab..b4336b9594b 100644 --- a/app/models/enterprise_token.rb +++ b/app/models/enterprise_token.rb @@ -66,11 +66,11 @@ class EnterpriseToken < ApplicationRecord end def available_features - active_tokens.map(&:available_features).flatten.uniq + active_tokens.map(&:available_features).inject(Set.new, :|) end def non_trialling_features - active_non_trial_tokens.map(&:available_features).flatten.uniq + active_non_trial_tokens.map(&:available_features).inject(Set.new, :|) end def trialling_features diff --git a/spec/models/enterprise_token_spec.rb b/spec/models/enterprise_token_spec.rb index 739b9c95d7e..4a8f68f619a 100644 --- a/spec/models/enterprise_token_spec.rb +++ b/spec/models/enterprise_token_spec.rb @@ -364,7 +364,7 @@ RSpec.describe EnterpriseToken do let!(:active_token) { create_enterprise_token("an_active_token", plan: :basic, expires_at: 1.year.from_now) } it "returns the features for the plan of the token" do - expect(described_class.available_features).to eq(OpenProject::Token::FEATURES_PER_PLAN[:basic]) + expect(described_class.available_features).to match_array(OpenProject::Token::FEATURES_PER_PLAN[:basic]) end end @@ -372,7 +372,7 @@ RSpec.describe EnterpriseToken do let!(:trial_token) { create_enterprise_token("a_trial_token", plan: :basic, trial: true, expires_at: 1.year.from_now) } it "returns the features for the plan of the token" do - expect(described_class.available_features).to eq(OpenProject::Token::FEATURES_PER_PLAN[:basic]) + expect(described_class.available_features).to match_array(OpenProject::Token::FEATURES_PER_PLAN[:basic]) end end