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 = Blather::Stanza::Iq::Vcard::Vcard.new
25			assert_equal(
26				[:voicemail_ogm_tts, { locals: { fn: "a user of JMP.chat" } }],
27				CustomerOGM::TTS.new(vcard).to_render
28			)
29		end
30
31		def test_to_render_fn
32			vcard = Blather::Stanza::Iq::Vcard::Vcard.new
33			vcard["FN"] = "name"
34			assert_equal(
35				[:voicemail_ogm_tts, { locals: { fn: "name" } }],
36				CustomerOGM::TTS.new(vcard).to_render
37			)
38		end
39
40		def test_to_render_nickname
41			vcard = Blather::Stanza::Iq::Vcard::Vcard.new
42			vcard["NICKNAME"] = "name"
43			assert_equal(
44				[:voicemail_ogm_tts, { locals: { fn: "name" } }],
45				CustomerOGM::TTS.new(vcard).to_render
46			)
47		end
48	end
49end