@@ -2,36 +2,32 @@ import assert from 'node:assert/strict'
2
2
import fs from 'node:fs/promises'
3
3
import test from 'node:test'
4
4
import { slug } from 'github-slugger'
5
- import { toHast } from 'mdast-util-to-hast'
6
5
import { toHtml } from 'hast-util-to-html'
6
+ import { gfm } from 'micromark-extension-gfm'
7
7
import { fromMarkdown } from 'mdast-util-from-markdown'
8
+ import { toHast } from 'mdast-util-to-hast'
8
9
import { toMarkdown } from 'mdast-util-to-markdown'
9
- import { gfm } from 'micromark-extension-gfm'
10
10
import { gfmFromMarkdown , gfmToMarkdown } from '../index.js'
11
- import * as mod from '../index.js'
12
11
import { spec } from './spec.js'
13
12
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
+ } )
20
20
} )
21
21
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
+ } )
26
26
let index = - 1
27
27
28
28
while ( ++ index < files . length ) {
29
29
const example = files [ index ]
30
30
const name = index + '-' + slug ( example . category )
31
- const mdast = fromMarkdown ( example . input , {
32
- extensions : [ gfm ( ) ] ,
33
- mdastExtensions : [ gfmFromMarkdown ( ) ]
34
- } )
35
31
36
32
if (
37
33
name === '24-autolinks' ||
@@ -42,6 +38,11 @@ test('markdown -> mdast', async () => {
42
38
continue
43
39
}
44
40
41
+ const mdast = fromMarkdown ( example . input , {
42
+ extensions : [ gfm ( ) ] ,
43
+ mdastExtensions : [ gfmFromMarkdown ( ) ]
44
+ } )
45
+
45
46
const hast = toHast ( mdast , { allowDangerousHtml : true } )
46
47
assert ( hast , 'expected node' )
47
48
const actualHtml = toHtml ( hast , {
@@ -50,37 +51,47 @@ test('markdown -> mdast', async () => {
50
51
closeSelfClosing : true
51
52
} )
52
53
53
- /** @type {string } */
54
- let expectedHtml
55
54
/** @type {string } */
56
55
let expectedMarkdown
57
- const expectedUrl = new URL ( 'fixture/' + name + '.html' , import . meta. url )
58
- const inputUrl = new URL ( 'fixture/' + name + '.md' , import . meta. url )
59
56
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
+ } )
65
60
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
+ )
67
68
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
+ }
74
76
75
- assert . equal (
76
- actualHtml ,
77
- expectedHtml ,
78
- example . category + ' (' + index + ') -> html'
77
+ assert . equal ( actualHtml , expectedHtml )
78
+ }
79
79
)
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
+ }
84
95
)
85
96
}
86
97
} )
0 commit comments