Project

General

Profile

Actions

Defect #44731

open

Issue's history default tab is nil for fixture users

Added by Yasu Saku 2 days ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
-
Target version:
-
Resolution:
Affected version:

Description

When users are created from fixtures (e.g., in test or development environments), the history_default_tab preference is not initialized, resulting in nil value. This causes issue_history_default_tab helper method to select the first tab instead of the expected default.

Steps to reproduce

1. Load test fixtures (rake db:fixtures:load)
2. Check an admin user created from fixtures (e.g., User ID: 1)
3. View User.find(1).pref.others[:history_default_tab]

Expected: 'notes'
Actual: nil

Root cause

In test/fixtures/user_preferences.yml, the history_default_tab key is not defined in the :others hash for fixture records.

Example (user_preferences_001):

user_preferences_001:
  others: |
    ---
    :no_self_notified: false
    :my_page_layout:
      ...
    # history_default_tab is missing here

Consequence

The issue_history_default_tab method in app/helpers/issues_helper.rb receives nil and returns it without setting a default value:

def issue_history_default_tab
  return params[:tab] if params[:tab].present?

  user_default_tab = User.current.pref.history_default_tab

  case user_default_tab
  when 'last_tab_visited'
    cookies['history_last_tab'].presence || 'notes'
  when ''
    'notes'
  else
    user_default_tab  # Returns nil without handling it
  end
end

This causes the first tab (History) to be selected instead of Notes.

No data to display

Actions

Also available in: Atom PDF