test_customer_ogm.rb

 1# frozen_string_literal: true
 2
 3require "test_helper"
 4require "customer_ogm"
 5
 6class CustomerOGMTest < Minitest::Test
 7	def test_for_url
 8		assert_kind_of(
 9			CustomerOGM::Media,
10			CustomerOGM.for("https://example.com/test.mp3", "", -> {})
11		)
12	end
13
14	def test_for_no_url
15		assert_kind_of(
16			CustomerOGM::TTS,
17			CustomerOGM.for(nil, "", -> { EMPromise.resolve(nil) }).sync
18		)
19	end
20	em :test_for_no_url
21
22	class TTSTest < Minitest::Test
23		def test_to_render_empty_vcard
24			vcard = Nokogiri::XML.parse(<<~XML).root
25				<vcard xmlns="urn:ietf:params:xml:ns:vcard-4.0">
26				</vcard4>
27			XML
28			assert_equal(
29				[:voicemail_ogm_tts, { locals: { fn: "(555) 123-4567" } }],
30				CustomerOGM::TTS.new("+15551234567", vcard).to_render
31			)
32		end
33
34		def test_to_render_fn
35			vcard = Nokogiri::XML.parse(<<~XML).root
36				<vcard xmlns="urn:ietf:params:xml:ns:vcard-4.0">
37					<fn><text>name</text></fn>
38				</vcard4>
39			XML
40			assert_equal(
41				[:voicemail_ogm_tts, { locals: { fn: "name" } }],
42				CustomerOGM::TTS.new("", vcard).to_render
43			)
44		end
45
46		def test_to_render_nickname
47			vcard = Nokogiri::XML.parse(<<~XML).root
48				<vcard xmlns="urn:ietf:params:xml:ns:vcard-4.0">
49					<nickname><text>name</text></nickname>
50				</vcard4>
51			XML
52			assert_equal(
53				[:voicemail_ogm_tts, { locals: { fn: "name" } }],
54				CustomerOGM::TTS.new("", vcard).to_render
55			)
56		end
57	end
58end