From 15cec3382c1c86faf2f18ee77a601c645ad0e95b Mon Sep 17 00:00:00 2001 From: Ivan Kuchin Date: Fri, 19 Sep 2025 17:49:04 +0200 Subject: [PATCH] use Set for available_features --- app/models/enterprise_token.rb | 4 ++-- spec/models/enterprise_token_spec.rb | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/models/enterprise_token.rb b/app/models/enterprise_token.rb index 4b371f1f282..7495b849ce4 100644 --- a/app/models/enterprise_token.rb +++ b/app/models/enterprise_token.rb @@ -72,11 +72,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