Skip to content

Commit 93acf31

Browse files
authored
Merge pull request #2884 from DFE-Digital/AQTS-1131-reorder-list
Reorder staff list
2 parents d6a8e0f + e46a281 commit 93acf31

File tree

6 files changed

+71
-19
lines changed

6 files changed

+71
-19
lines changed

app/models/staff.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ class Staff < ApplicationRecord
7474

7575
validates :name, presence: true
7676

77-
scope :assessors, -> { where(assess_permission: true) }
77+
scope :assessors_by_name, -> { where(assess_permission: true).order(:name) }
7878
scope :not_archived, -> { where(archived: false) }
7979
scope :archived, -> { where(archived: true) }
8080

app/views/assessor_interface/assessor_assignments/new.html.erb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<%= f.govuk_error_summary %>
88

99
<%= f.govuk_collection_radio_buttons :assessor_id,
10-
[OpenStruct.new(id: "", name: t("application_form.summary.unassigned"))] + Staff.assessors.not_archived,
10+
[OpenStruct.new(id: "", name: t("application_form.summary.unassigned"))] + Staff.assessors_by_name.not_archived,
1111
:id,
1212
:name,
1313
legend: nil %>

app/views/assessor_interface/reviewer_assignments/new.html.erb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<%= f.govuk_error_summary %>
88

99
<%= f.govuk_collection_radio_buttons :reviewer_id,
10-
[OpenStruct.new(id: "", name: t("application_form.summary.unassigned"))] + Staff.assessors.not_archived,
10+
[OpenStruct.new(id: "", name: t("application_form.summary.unassigned"))] + Staff.assessors_by_name.not_archived,
1111
:id,
1212
:name,
1313
legend: nil %>

spec/models/staff_spec.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,8 @@
7979
end
8080

8181
describe "scopes" do
82-
describe ".assessors" do
83-
subject { described_class.assessors }
82+
describe ".assessors_by_name" do
83+
subject { described_class.assessors_by_name }
8484

8585
context "when assess_permission == true" do
8686
let(:with_assess_permission) { create(:staff, :with_assess_permission) }

spec/requests/assessor/applications/assign-assessor/new_spec.rb

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,28 +9,54 @@
99
end
1010

1111
let(:application_form) { create :application_form, :submitted }
12+
let(:signed_in_staff) do
13+
create(:staff, :with_assess_permission, name: "Charlie Assessor")
14+
end
1215

1316
before do
14-
create(:staff, :with_assess_permission, name: "Active Assessor")
17+
create(:staff, :with_assess_permission, name: "Zachary Assessor")
18+
create(:staff, :with_assess_permission, name: "Aaron Assessor")
19+
create(:staff, :with_assess_permission, name: "Bernard Assessor")
1520
create(
1621
:staff,
1722
:with_assess_permission,
1823
:archived,
1924
name: "Archived Assessor",
2025
)
21-
sign_in(create(:staff, :with_assess_permission))
26+
sign_in(signed_in_staff)
2227
assign_assessor
2328
end
2429

2530
it "displays the page with the 'Select an assessor' title" do
2631
expect(response.body).to include("Select an assessor")
2732
end
2833

29-
it "displays the active assessor as an option" do
30-
expect(response.body).to include("Active Assessor")
34+
it "displays the active assessors as options" do
35+
expect(response.body).to include("Aaron Assessor")
36+
expect(response.body).to include("Bernard Assessor")
37+
expect(response.body).to include("Zachary Assessor")
3138
end
3239

3340
it "does not display the archived assessor as an option" do
3441
expect(response.body).not_to include("Archived Assessor")
3542
end
43+
44+
it "displays the assessors in alphabetical order" do
45+
assessor_names =
46+
Nokogiri
47+
.HTML(response.body)
48+
.css(".govuk-radios__label")
49+
.map(&:text)
50+
.map(&:strip)
51+
.reject { |name| name == "Not assigned" }
52+
53+
expected_names = [
54+
"Aaron Assessor",
55+
"Bernard Assessor",
56+
"Charlie Assessor",
57+
"Zachary Assessor",
58+
]
59+
60+
expect(assessor_names).to eq(expected_names)
61+
end
3662
end

spec/requests/assessor/applications/assign-reviewer/new_spec.rb

Lines changed: 36 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,33 +4,59 @@
44

55
RSpec.describe "GET /assessor/applications/:reference/assign-reviewer",
66
type: :request do
7-
subject(:assign_assessor) do
7+
subject(:assign_reviewer) do
88
get "/assessor/applications/#{application_form.reference}/assign-reviewer"
99
end
1010

1111
let(:application_form) { create :application_form, :submitted }
12+
let(:signed_in_staff) do
13+
create(:staff, :with_assess_permission, name: "Charlie Reviewer")
14+
end
1215

1316
before do
14-
create(:staff, :with_assess_permission, name: "Active Assessor")
17+
create(:staff, :with_assess_permission, name: "Zachary Reviewer")
18+
create(:staff, :with_assess_permission, name: "Aaron Reviewer")
19+
create(:staff, :with_assess_permission, name: "Bernard Reviewer")
1520
create(
1621
:staff,
1722
:with_assess_permission,
1823
:archived,
19-
name: "Archived Assessor",
24+
name: "Archived Reviewer",
2025
)
21-
sign_in(create(:staff, :with_assess_permission))
22-
assign_assessor
26+
sign_in(signed_in_staff)
27+
assign_reviewer
2328
end
2429

25-
it "displays the page with the 'Select an reviewer' title" do
30+
it "displays the page with the 'Select a reviewer' title" do
2631
expect(response.body).to include("Select a reviewer")
2732
end
2833

29-
it "displays the active assessor as an option" do
30-
expect(response.body).to include("Active Assessor")
34+
it "displays the active reviewers as options" do
35+
expect(response.body).to include("Aaron Reviewer")
36+
expect(response.body).to include("Bernard Reviewer")
37+
expect(response.body).to include("Zachary Reviewer")
38+
end
39+
40+
it "does not display the archived reviewer as an option" do
41+
expect(response.body).not_to include("Archived Reviewer")
3142
end
3243

33-
it "does not display the archived assessor as an option" do
34-
expect(response.body).not_to include("Archived Assessor")
44+
it "displays the reviewers in alphabetical order" do
45+
reviewer_names =
46+
Nokogiri
47+
.HTML(response.body)
48+
.css(".govuk-radios__label")
49+
.map(&:text)
50+
.map(&:strip)
51+
.reject { |name| name == "Not assigned" }
52+
53+
expected_names = [
54+
"Aaron Reviewer",
55+
"Bernard Reviewer",
56+
"Charlie Reviewer",
57+
"Zachary Reviewer",
58+
]
59+
60+
expect(reviewer_names).to eq(expected_names)
3561
end
3662
end

0 commit comments

Comments
 (0)