Change summary
lib/db_port.rb | 15 +++++++++++----
lib/validators.rb | 7 -------
schemas | 2 +-
test/test_port_repo.rb | 6 ++++--
4 files changed, 16 insertions(+), 14 deletions(-)
Detailed changes
@@ -1,18 +1,17 @@
# frozen_string_literal: true
+require "date_core"
require "value_semantics/monkey_patched"
require_relative "./validators"
class DbPort
module Status
- SUBMITTED = "submitted"
- COMPLETE = "complete"
- FOC = "foc"
+ SUBMITTED = "SUBMITTED"
+ COMPLETE = "COMPLETE"
end
value_semantics do
id String
- processing_status PortProcessingStatus
actual_foc_date Either(DateTime, nil), default: nil, coerce: true
updated_at DateTime, coerce: true
tel ValidTelString
@@ -20,6 +19,14 @@ class DbPort
backend_sgx String
end
+ def processing_status
+ if actual_foc_date&.< DateTime.now
+ Status::COMPLETE
+ else
+ Status::SUBMITTED
+ end
+ end
+
def self.coerce_actual_foc_date(time)
time&.to_datetime
end
@@ -5,10 +5,3 @@ module ValidTelString
value.is_a?(String) && value =~ /\A\+1(\d{3})(\d{3})(\d+)\Z/
end
end
-
-module PortProcessingStatus
- def self.===(value)
- value.is_a?(String) &&
- ["complete", "submitted", "foc"].include?(value.downcase)
- end
-end
@@ -1 +1 @@
-Subproject commit d1c2a6e6fe23408f6f38513f4040518d95fe565c
+Subproject commit e6f4d5c62df63b96e14c412624869411bcbbc76a
@@ -25,7 +25,6 @@ class PortRepoDbTest < Minitest::Test
rows = [
{
"id" => "port1",
- "processing_status" => "complete",
"actual_foc_date" => DateTime.now,
"updated_at" => DateTime.now,
"tel" => "+12225551234",
@@ -33,6 +32,9 @@ class PortRepoDbTest < Minitest::Test
"backend_sgx" => "sgx"
}
]
+ # Make sure that `processing_status`
+ # resolves to "complete"
+ sleep 1
db = FakeDbForPorts.new(rows)
repo = PortRepo::Db.new(@output, db: db)
@@ -41,7 +43,7 @@ class PortRepoDbTest < Minitest::Test
assert_equal 1, ports.length
assert_kind_of DbPort, ports[0]
assert_equal "port1", ports[0].id
- assert_equal "complete", ports[0].processing_status
+ assert_equal DbPort::Status::COMPLETE, ports[0].processing_status
end
em :test_list_returns_db_ports