@@ -2,36 +2,32 @@ import assert from 'node:assert/strict'
22import fs from 'node:fs/promises'
33import test from 'node:test'
44import { slug } from 'github-slugger'
5- import { toHast } from 'mdast-util-to-hast'
65import { toHtml } from 'hast-util-to-html'
6+ import { gfm } from 'micromark-extension-gfm'
77import { fromMarkdown } from 'mdast-util-from-markdown'
8+ import { toHast } from 'mdast-util-to-hast'
89import { toMarkdown } from 'mdast-util-to-markdown'
9- import { gfm } from 'micromark-extension-gfm'
1010import { gfmFromMarkdown , gfmToMarkdown } from '../index.js'
11- import * as mod from '../index.js'
1211import { spec } from './spec.js'
1312
14- test ( 'core' , ( ) => {
15- assert . deepEqual (
16- Object . keys ( mod ) . sort ( ) ,
17- [ 'gfmFromMarkdown' , 'gfmToMarkdown' ] ,
18- 'should expose the public api'
19- )
13+ test ( 'core' , async function ( t ) {
14+ await t . test ( 'should expose the public api' , async function ( ) {
15+ assert . deepEqual ( Object . keys ( await import ( '../index.js' ) ) . sort ( ) , [
16+ 'gfmFromMarkdown' ,
17+ 'gfmToMarkdown'
18+ ] )
19+ } )
2020} )
2121
22- test ( 'markdown -> mdast' , async ( ) => {
23- const files = spec . filter (
24- ( example ) => ! / d i s a l l o w e d r a w h t m l / i. test ( example . category )
25- )
22+ test ( 'markdown -> mdast' , async function ( t ) {
23+ const files = spec . filter ( function ( example ) {
24+ return ! / d i s a l l o w e d r a w h t m l / i. test ( example . category )
25+ } )
2626 let index = - 1
2727
2828 while ( ++ index < files . length ) {
2929 const example = files [ index ]
3030 const name = index + '-' + slug ( example . category )
31- const mdast = fromMarkdown ( example . input , {
32- extensions : [ gfm ( ) ] ,
33- mdastExtensions : [ gfmFromMarkdown ( ) ]
34- } )
3531
3632 if (
3733 name === '24-autolinks' ||
@@ -42,6 +38,11 @@ test('markdown -> mdast', async () => {
4238 continue
4339 }
4440
41+ const mdast = fromMarkdown ( example . input , {
42+ extensions : [ gfm ( ) ] ,
43+ mdastExtensions : [ gfmFromMarkdown ( ) ]
44+ } )
45+
4546 const hast = toHast ( mdast , { allowDangerousHtml : true } )
4647 assert ( hast , 'expected node' )
4748 const actualHtml = toHtml ( hast , {
@@ -50,37 +51,47 @@ test('markdown -> mdast', async () => {
5051 closeSelfClosing : true
5152 } )
5253
53- /** @type {string } */
54- let expectedHtml
5554 /** @type {string } */
5655 let expectedMarkdown
57- const expectedUrl = new URL ( 'fixture/' + name + '.html' , import . meta. url )
58- const inputUrl = new URL ( 'fixture/' + name + '.md' , import . meta. url )
5956
60- try {
61- expectedHtml = String ( await fs . readFile ( expectedUrl ) )
62- } catch {
63- expectedHtml = example . output . slice ( 0 , - 1 )
64- }
57+ const actualMarkdown = toMarkdown ( mdast , {
58+ extensions : [ gfmToMarkdown ( ) ]
59+ } )
6560
66- const actualMarkdown = toMarkdown ( mdast , { extensions : [ gfmToMarkdown ( ) ] } )
61+ await t . test (
62+ example . category + ' (' + index + ') -> html' ,
63+ async function ( ) {
64+ const expectedUrl = new URL (
65+ 'fixture/' + name + '.html' ,
66+ import . meta. url
67+ )
6768
68- try {
69- expectedMarkdown = String ( await fs . readFile ( inputUrl ) )
70- } catch {
71- expectedMarkdown = actualMarkdown
72- await fs . writeFile ( inputUrl , expectedMarkdown )
73- }
69+ /** @type {string } */
70+ let expectedHtml
71+ try {
72+ expectedHtml = String ( await fs . readFile ( expectedUrl ) )
73+ } catch {
74+ expectedHtml = example . output . slice ( 0 , - 1 )
75+ }
7476
75- assert . equal (
76- actualHtml ,
77- expectedHtml ,
78- example . category + ' (' + index + ') -> html'
77+ assert . equal ( actualHtml , expectedHtml )
78+ }
7979 )
80- assert . equal (
81- actualMarkdown ,
82- expectedMarkdown ,
83- example . category + ' (' + index + ') -> md'
80+
81+ await t . test (
82+ example . category + ' (' + index + ') -> md' ,
83+ async function ( ) {
84+ const inputUrl = new URL ( 'fixture/' + name + '.md' , import . meta. url )
85+
86+ try {
87+ expectedMarkdown = String ( await fs . readFile ( inputUrl ) )
88+ } catch {
89+ expectedMarkdown = actualMarkdown
90+ await fs . writeFile ( inputUrl , expectedMarkdown )
91+ }
92+
93+ assert . equal ( actualMarkdown , expectedMarkdown )
94+ }
8495 )
8596 }
8697} )
0 commit comments