• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

pulibrary / orangelight / 0e37073d-109c-440c-949f-49d2aa86311b

18 Aug 2025 09:05PM UTC coverage: 0.482% (-94.9%) from 95.343%
0e37073d-109c-440c-949f-49d2aa86311b

push

circleci

web-flow
Replace per_page_options_for_select with custom component to avoid deprecation issue (#5186)

* Start creating new component to address deprecaton warning

* Replace per_page_options_for_select with custom component to avoid deprecation issue

Co-authored-by: Jane Sandberg <sandbergja@users.noreply.github.com>

---------

Co-authored-by: Ryan Jensen <rj1044@princeton.edu>
Co-authored-by: Jane Sandberg <sandbergja@users.noreply.github.com>

0 of 33 new or added lines in 1 file covered. (0.0%)

9374 existing lines in 213 files now uncovered.

47 of 9753 relevant lines covered (0.48%)

0.01 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/app/services/db_migrate_uppercase_usernames.rb
1
# frozen_string_literal: false
2

UNCOV
3
class DBMigrateUppercaseUsernames
×
UNCOV
4
  def self.run
×
UNCOV
5
    new.run
×
UNCOV
6
  end
×
7

UNCOV
8
  def run
×
UNCOV
9
    find_uppercase_users.map { |uppercase_user| UserLowercaser.new(uppercase_user).convert }
×
UNCOV
10
  end
×
11

12
  # find all users with uppercase letters in their username
UNCOV
13
  def find_uppercase_users
×
UNCOV
14
    User.where("uid ~ ?", "[A-Z]").to_a
×
UNCOV
15
  end
×
16

UNCOV
17
  class UserLowercaser
×
UNCOV
18
    attr_reader :uppercase_user
×
19

UNCOV
20
    def initialize(uppercase_user)
×
UNCOV
21
      @uppercase_user = uppercase_user
×
UNCOV
22
    end
×
23

UNCOV
24
    def convert
×
UNCOV
25
      lowercase_user = find_lowercase_user
×
UNCOV
26
      merge_bookmarks(lowercase_user)
×
UNCOV
27
      merge_searches(lowercase_user)
×
UNCOV
28
    end
×
29

30
    # find lowercase version of the user with uppercase letters in their username
UNCOV
31
    def find_lowercase_user
×
UNCOV
32
      User.find_by(username: uppercase_user.uid.downcase) || User.create(uid: uppercase_user.uid.downcase, username: uppercase_user.uid.downcase)
×
UNCOV
33
    end
×
34

35
    # merge uppercase user's bookmarks into lowercase user's bookmarks
UNCOV
36
    def merge_bookmarks(lowercase_user)
×
UNCOV
37
      uppercase_user_bookmarks = Bookmark.where(user_id: uppercase_user.id)
×
UNCOV
38
      lowercase_user_bookmarks = Bookmark.where(user_id: lowercase_user.id).to_a
×
UNCOV
39
      lowercase_bookmarks_doc_ids = lowercase_user_bookmarks.map(&:document_id)
×
UNCOV
40
      lowercase_user.bookmarks = lowercase_user_bookmarks + uppercase_user_bookmarks.reject { |bookmark| lowercase_bookmarks_doc_ids.include? bookmark.document_id }
×
UNCOV
41
    end
×
42

43
    # merge uppercase user's searches into lowercase user's searches
UNCOV
44
    def merge_searches(lowercase_user)
×
UNCOV
45
      uppercase_user_searches = Search.where(user_id: uppercase_user.id)
×
UNCOV
46
      lowercase_user_searches = Search.where(user_id: lowercase_user.id).to_a
×
UNCOV
47
      lowercase_searches_queries = lowercase_user_searches.map(&:query_params)
×
UNCOV
48
      lowercase_user.searches = lowercase_user_searches + uppercase_user_searches.reject { |search| lowercase_searches_queries.include? search.query_params }
×
UNCOV
49
    end
×
UNCOV
50
  end
×
UNCOV
51
end
×
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc