Change summary
lib/call_attempt_repo.rb | 4 ++--
lib/cdr_repo.rb | 2 +-
test/test_helper.rb | 2 +-
test/test_web.rb | 21 +++++++++++++++++++++
4 files changed, 25 insertions(+), 4 deletions(-)
Detailed changes
@@ -46,9 +46,9 @@ class CallAttemptRepo
end
end
- def ending_call(customer, call_id)
+ def ending_call(customer_id, call_id)
redis.srem(
- "jmp_customer_ongoing_calls-#{customer.customer_id}",
+ "jmp_customer_ongoing_calls-#{customer_id}",
call_id
)
end
@@ -12,7 +12,7 @@ class CDRRepo
data.delete(:rate)
data.delete(:charge)
columns, values = data.to_a.transpose
- DB.query_defer(<<~SQL, values)
+ @db.query_defer(<<~SQL, values)
INSERT INTO cdr (#{columns.join(',')})
VALUES ($1, $2, $3, $4, $5, $6, $7)
SQL
@@ -291,7 +291,7 @@ class FakeRedis
end
def srem(key, member)
- @values[key].delete(member)
+ @values[key]&.delete(member)
end
def scard(key)
@@ -127,6 +127,7 @@ class WebTest < Minitest::Test
)
)
)
+ Web.opts[:cdr_repo] = CDRRepo.new(db: FakeDB.new)
Web.opts[:common_logger] = FakeLog.new
Web.opts[:reachability_repo] = ReachabilityRepo::Voice.new(
redis: ReachableRedis,
@@ -359,6 +360,26 @@ class WebTest < Minitest::Test
end
em :test_outbound_toll_free
+ def test_outbound_disconnect
+ post(
+ "/outbound/calls/status",
+ {
+ eventType: "disconnect",
+ from: "ccustomerid",
+ to: "+15557654321",
+ callId: "acall",
+ startTime: Time.now.to_s,
+ endTime: Time.now.to_s,
+ cause: "hangup"
+ }.to_json,
+ { "CONTENT_TYPE" => "application/json" }
+ )
+
+ assert last_response.ok?
+ assert_equal("OK", last_response.body)
+ end
+ em :test_outbound_disconnect
+
def test_inbound
CustomerFwd::BANDWIDTH_VOICE.expect(
:create_call,