@@ -166,12 +166,43 @@ defmodule ExDoc.Retriever.ElixirTest do
166166 assert callback1 . type == :function
167167 assert callback1 . annotations == [ ]
168168
169- assert callback1 . doc ==
170- ExDoc.Markdown . to_ast ( " Callback implementation for ` c:Mod.callback1/0`." )
169+ assert callback1 . doc |> DocAST . to_string ( ) ==
170+ ~s | <p> Callback implementation for <code class="inline"> c:Mod.callback1/0</code>.</p> |
171171
172172 assert optional_callback1 . id == "optional_callback1/0"
173173 assert optional_callback1 . type == :function
174- assert DocAST . to_string ( optional_callback1 . doc ) == "<p>optional_callback1/0 docs.</p>"
174+ assert optional_callback1 . doc |> DocAST . to_string ( ) == ~s| <p>optional_callback1/0 docs.</p>|
175+ end
176+
177+ test "types" , c do
178+ elixirc ( c , ~S"""
179+ defmodule Mod do
180+ @typedoc "type1/0 docs."
181+ @type type1() :: atom()
182+
183+ @typedoc "opaque1/0 docs."
184+ @opaque opaque1() :: atom()
185+ end
186+ """ )
187+
188+ [ mod ] = Retriever . docs_from_modules ( [ Mod ] , % ExDoc.Config { } )
189+ [ opaque1 , type1 ] = mod . typespecs
190+
191+ assert type1 . id == "t:type1/0"
192+ assert type1 . signature == "type1()"
193+ assert type1 . type == :type
194+ assert type1 . annotations == [ ]
195+ assert type1 . doc_line == 2
196+ assert DocAST . to_string ( type1 . doc ) == "<p>type1/0 docs.</p>"
197+ assert Macro . to_string ( type1 . spec ) == "type1() :: atom()"
198+
199+ assert opaque1 . id == "t:opaque1/0"
200+ assert opaque1 . signature == "opaque1()"
201+ assert opaque1 . type == :opaque
202+ assert opaque1 . annotations == [ "opaque" ]
203+ assert opaque1 . doc_line == 5
204+ assert opaque1 . doc |> DocAST . to_string ( ) == ~s| <p>opaque1/0 docs.</p>|
205+ assert opaque1 . spec |> Macro . to_string ( ) == "opaque1()"
175206 end
176207
177208 test "protocols" , c do
0 commit comments