Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/helpers/page_layout_helper_spec.rb')
-rw-r--r--spec/helpers/page_layout_helper_spec.rb52
1 files changed, 25 insertions, 27 deletions
diff --git a/spec/helpers/page_layout_helper_spec.rb b/spec/helpers/page_layout_helper_spec.rb
index 99cdee6dbb2..d03e39f2051 100644
--- a/spec/helpers/page_layout_helper_spec.rb
+++ b/spec/helpers/page_layout_helper_spec.rb
@@ -223,39 +223,37 @@ RSpec.describe PageLayoutHelper do
end
describe '#user_status_properties' do
- using RSpec::Parameterized::TableSyntax
-
let(:user) { build(:user) }
- availability_types = Types::AvailabilityEnum.enum
-
- where(:message, :emoji, :availability) do
- "Some message" | UserStatus::DEFAULT_EMOJI | availability_types[:busy]
- "Some message" | UserStatus::DEFAULT_EMOJI | availability_types[:not_set]
- "Some message" | "basketball" | availability_types[:busy]
- "Some message" | "basketball" | availability_types[:not_set]
- "Some message" | "" | availability_types[:busy]
- "Some message" | "" | availability_types[:not_set]
- "" | UserStatus::DEFAULT_EMOJI | availability_types[:busy]
- "" | UserStatus::DEFAULT_EMOJI | availability_types[:not_set]
- "" | "basketball" | availability_types[:busy]
- "" | "basketball" | availability_types[:not_set]
- "" | "" | availability_types[:busy]
- "" | "" | availability_types[:not_set]
- end
+ subject { helper.user_status_properties(user) }
- with_them do
- it "sets the default user status fields" do
- user.status = UserStatus.new(message: message, emoji: emoji, availability: availability)
- result = {
+ context 'when the user has no status' do
+ it 'returns default properties' do
+ is_expected.to eq({
+ current_emoji: '',
+ current_message: '',
can_set_user_availability: true,
- current_availability: availability,
- current_emoji: emoji,
- current_message: message,
default_emoji: UserStatus::DEFAULT_EMOJI
- }
+ })
+ end
+ end
+
+ context 'when user has a status' do
+ let(:time) { 3.hours.ago }
- expect(helper.user_status_properties(user)).to eq(result)
+ before do
+ user.status = UserStatus.new(message: 'Some message', emoji: 'basketball', availability: 'busy', clear_status_at: time)
+ end
+
+ it 'merges the status properties with the defaults' do
+ is_expected.to eq({
+ current_clear_status_after: time.to_s,
+ current_availability: 'busy',
+ current_emoji: 'basketball',
+ current_message: 'Some message',
+ can_set_user_availability: true,
+ default_emoji: UserStatus::DEFAULT_EMOJI
+ })
end
end
end