|
7 | 7 | expect(record).not_to be_valid |
8 | 8 | end |
9 | 9 |
|
10 | | - it "includes errors for each missing attribute" do |
| 10 | + it "includes errors for each missing mandatory attribute" do |
11 | 11 | record = described_class.new |
12 | 12 | record.valid? |
13 | 13 |
|
14 | | - expect(record.errors.attribute_names).to include(:edition_id, :requester_name, :requester_email, :current_content, :deadline) |
| 14 | + expect(record.errors.attribute_names).to include(:source_id, :source_app, :requester_name, :requester_email, :current_content) |
15 | 15 | end |
16 | 16 |
|
17 | 17 | it "is valid when all required attributes are set" do |
|
20 | 20 | expect(record).to be_valid |
21 | 21 | end |
22 | 22 |
|
23 | | - describe "searching by edition_id" do |
24 | | - it "can save and retrieve multiple requests that share the same edition_id" do |
| 23 | + describe "searching by source_id" do |
| 24 | + it "can save and retrieve multiple requests that share the same source_id" do |
25 | 25 | shared_uuid = "a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11" |
26 | | - request_1 = create(:request, edition_id: shared_uuid, requester_email: "alice@gov.uk") |
27 | | - request_2 = create(:request, edition_id: shared_uuid, requester_email: "bob@gov.uk") |
28 | | - other_request = create(:request, edition_id: SecureRandom.uuid) |
| 26 | + request_1 = create(:request, source_id: shared_uuid, requester_email: "alice@gov.uk") |
| 27 | + request_2 = create(:request, source_id: shared_uuid, requester_email: "bob@gov.uk") |
| 28 | + other_request = create(:request, source_id: SecureRandom.uuid) |
29 | 29 |
|
30 | | - results = Request.where(edition_id: shared_uuid) |
| 30 | + results = Request.where(source_id: shared_uuid) |
31 | 31 |
|
32 | 32 | expect(results).to include(request_1, request_2) |
33 | 33 | expect(results).not_to include(other_request) |
|
47 | 47 | end |
48 | 48 |
|
49 | 49 | context "scopes" do |
50 | | - describe ".for_edition" do |
51 | | - it "returns only requests matching the given edition id" do |
52 | | - edition_id = SecureRandom.uuid |
53 | | - edition_request = FactoryBot.create(:request, edition_id: edition_id) |
54 | | - other_edition_request = FactoryBot.create(:request) |
| 50 | + describe ".for_source" do |
| 51 | + it "returns only requests matching the given source id" do |
| 52 | + source_id = SecureRandom.uuid |
| 53 | + source_request = FactoryBot.create(:request, source_id: source_id) |
| 54 | + other_source_request = FactoryBot.create(:request) |
55 | 55 |
|
56 | | - requests = Request.for_edition(edition_id) |
| 56 | + requests = Request.for_source(source_id) |
57 | 57 |
|
58 | | - expect(requests).to include(edition_request) |
59 | | - expect(requests).not_to include(other_edition_request) |
| 58 | + expect(requests).to include(source_request) |
| 59 | + expect(requests).not_to include(other_source_request) |
60 | 60 | end |
61 | 61 | end |
62 | 62 |
|
63 | 63 | describe ".most_recent_first" do |
64 | 64 | it "returns requests in descending order of created_at" do |
65 | | - edition_id = SecureRandom.uuid |
66 | | - older_request = FactoryBot.create(:request, edition_id: edition_id, created_at: Time.zone.now - 2.hours) |
67 | | - newer_request = FactoryBot.create(:request, edition_id: edition_id, created_at: Time.zone.now) |
| 65 | + source_id = SecureRandom.uuid |
| 66 | + older_request = FactoryBot.create(:request, source_id: source_id, created_at: Time.zone.now - 2.hours) |
| 67 | + newer_request = FactoryBot.create(:request, source_id: source_id, created_at: Time.zone.now) |
68 | 68 |
|
69 | 69 | requests = Request.most_recent_first |
70 | 70 |
|
71 | 71 | expect(requests).to eq([newer_request, older_request]) |
72 | 72 | end |
73 | 73 |
|
74 | | - it "combines with .for_edition to return edition requests in descending order" do |
75 | | - edition_id = SecureRandom.uuid |
76 | | - older_request_for_edition = FactoryBot.create(:request, edition_id: edition_id, created_at: Time.zone.now - 2.hours) |
77 | | - newer_request_for_edition = FactoryBot.create(:request, edition_id: edition_id, created_at: Time.zone.now) |
78 | | - older_request_other_edition = FactoryBot.create(:request, created_at: Time.zone.now - 2.days) |
79 | | - newer_request_other_edition = FactoryBot.create(:request, created_at: Time.zone.now) |
| 74 | + it "combines with .for_source to return source requests in descending order" do |
| 75 | + source_id = SecureRandom.uuid |
| 76 | + older_request_for_source = FactoryBot.create(:request, source_id: source_id, created_at: Time.zone.now - 2.hours) |
| 77 | + newer_request_for_source = FactoryBot.create(:request, source_id: source_id, created_at: Time.zone.now) |
| 78 | + older_request_other_source = FactoryBot.create(:request, created_at: Time.zone.now - 2.days) |
| 79 | + newer_request_other_source = FactoryBot.create(:request, created_at: Time.zone.now) |
80 | 80 |
|
81 | | - requests = Request.for_edition(edition_id).most_recent_first |
| 81 | + requests = Request.for_source(source_id).most_recent_first |
82 | 82 |
|
83 | | - expect(requests).to eq([newer_request_for_edition, older_request_for_edition]) |
84 | | - expect(requests).not_to include(older_request_other_edition, newer_request_other_edition) |
| 83 | + expect(requests).to eq([newer_request_for_source, older_request_for_source]) |
| 84 | + expect(requests).not_to include(older_request_other_source, newer_request_other_source) |
85 | 85 | end |
86 | 86 | end |
87 | 87 |
|
88 | | - describe ".most_recent_for_edition" do |
89 | | - it "returns the most recent request for the given edition ID" do |
90 | | - edition_id = SecureRandom.uuid |
91 | | - _older_request = FactoryBot.create(:request, edition_id: edition_id, created_at: Time.zone.now - 2.hours) |
92 | | - newer_request = FactoryBot.create(:request, edition_id: edition_id, created_at: Time.zone.now) |
| 88 | + describe ".most_recent_for_source" do |
| 89 | + it "returns the most recent request for the given source ID" do |
| 90 | + source_id = SecureRandom.uuid |
| 91 | + _older_request = FactoryBot.create(:request, source_id: source_id, created_at: Time.zone.now - 2.hours) |
| 92 | + newer_request = FactoryBot.create(:request, source_id: source_id, created_at: Time.zone.now) |
93 | 93 |
|
94 | | - request = Request.most_recent_for_edition(edition_id) |
| 94 | + request = Request.most_recent_for_source source_id |
95 | 95 |
|
96 | 96 | expect(request).to eq(newer_request) |
97 | 97 | end |
|
0 commit comments