Files
openfoodnetwork/spec/services/terms_of_service_spec.rb
Maikel Linke 4a0ed99919 Replace Paperclip on Enterprise model
We configured Paperclip to convert images to JPG in some cases but I
omitted that here because we don't need it. If an image is better
represented as PNG or another format then the user should be able to
choose that.

Some specs were also testing the generated URL but the Active Storage
URL doesn't contain a style name anymore and it's not helpful to test
the URL.
2022-06-01 17:16:55 +10:00

54 lines
1.8 KiB
Ruby

# frozen_string_literal: true
require 'spec_helper'
describe TermsOfService do
let(:customer) { create(:customer) }
let(:distributor) { create(:distributor_enterprise) }
context "a customer has not accepted the terms of service" do
before do
allow(customer).to receive(:terms_and_conditions_accepted_at) { nil }
end
it "returns false" do
expect(TermsOfService.tos_accepted?(customer)).to be false
end
end
context "a customer has accepted the platform terms of service" do
before do
allow(customer).to receive(:terms_and_conditions_accepted_at) { Time.zone.now - 1.week }
allow(TermsOfServiceFile).to receive(:updated_at) { Time.zone.now - 2.weeks }
end
it "should reflect whether the platform TOS have been accepted since the last update" do
expect {
allow(TermsOfServiceFile).to receive(:updated_at) { Time.zone.now }
}.to change {
TermsOfService.tos_accepted?(customer)
}.from(true).to(false)
end
end
context "a customer has accepted the distributor terms of service" do
before do
allow(customer).to receive(:terms_and_conditions_accepted_at) { Time.zone.now - 1.week }
allow(distributor).to receive(:terms_and_conditions_blob) {
ActiveStorage::Blob.new(created_at: Time.zone.now - 2.weeks)
}
end
it "should reflect whether the platform TOS have been accepted since the last update" do
expect {
allow(distributor).to receive(:terms_and_conditions_updated_at) { Time.zone.now }
allow(distributor).to receive(:terms_and_conditions_blob) {
ActiveStorage::Blob.new(created_at: Time.zone.now)
}
}.to change {
TermsOfService.tos_accepted?(customer, distributor)
}.from(true).to(false)
end
end
end