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