11import moment from 'moment/moment' ;
2- import type { Task } from 'Task/Task' ;
32import { GlobalFilter } from '../../src/Config/GlobalFilter' ;
43import { State } from '../../src/Obsidian/Cache' ;
5- import { Query } from '../../src/Query/Query' ;
6- import { MarkdownQueryResultsRenderer } from '../../src/Renderer/MarkdownQueryResultsRenderer' ;
7- import { TasksFile } from '../../src/Scripting/TasksFile' ;
84import { Priority } from '../../src/Task/Priority' ;
95import { readTasksFromSimulatedFile } from '../Obsidian/SimulatedFile' ;
106import { TaskBuilder } from '../TestingTools/TaskBuilder' ;
117import { fromLines } from '../TestingTools/TestHelpers' ;
8+ import { createMarkdownRenderer , renderMarkdown } from './RenderingTestHelpers' ;
129
1310window . moment = moment ;
1411
15- function createMarkdownRenderer ( source : string ) {
16- const tasksFile = new TasksFile ( 'query.md' ) ;
17- const query = new Query ( source , tasksFile ) ;
18- const renderer = new MarkdownQueryResultsRenderer ( {
19- query : ( ) => query ,
20- tasksFile : ( ) => tasksFile ,
21- source : ( ) => source ,
22- } ) ;
23- return { renderer, query } ;
24- }
25-
26- async function renderMarkdown ( source : string , tasks : Task [ ] ) {
27- const { renderer, query } = createMarkdownRenderer ( source ) ;
28- await renderer . renderQuery ( State . Warm , query . applyQueryToTasks ( tasks ) ) ;
29- return '\n' + renderer . markdown ;
30- }
31-
3212function readMarkdown ( tasksMarkdown : string ) {
3313 const lines = tasksMarkdown . split ( '\n' ) . filter ( ( line ) => line . length > 0 ) ;
3414 return fromLines ( { lines } ) ;
@@ -40,7 +20,7 @@ afterEach(() => {
4020
4121describe ( 'MarkdownQueryResultsRenderer tests' , ( ) => {
4222 it ( 'should render single task' , async ( ) => {
43- const markdown = await renderMarkdown ( 'hide tree' , [
23+ const { markdown } = await renderMarkdown ( 'hide tree' , [
4424 new TaskBuilder ( ) . description ( 'hello' ) . priority ( Priority . Medium ) . build ( ) ,
4525 ] ) ;
4626 expect ( markdown ) . toMatchInlineSnapshot ( `
@@ -66,7 +46,7 @@ describe('MarkdownQueryResultsRenderer tests', () => {
6646 } ) ;
6747
6848 it ( 'should render two tasks' , async ( ) => {
69- const markdown = await renderMarkdown ( 'hide tree\nsort by priority reverse' , [
49+ const { markdown } = await renderMarkdown ( 'hide tree\nsort by priority reverse' , [
7050 new TaskBuilder ( ) . description ( 'hello' ) . priority ( Priority . Medium ) . build ( ) ,
7151 new TaskBuilder ( ) . description ( 'bye' ) . priority ( Priority . High ) . build ( ) ,
7252 ] ) ;
@@ -85,7 +65,7 @@ describe('MarkdownQueryResultsRenderer tests', () => {
8565- [ ] 55555
8666` ) ;
8767
88- const markdown = await renderMarkdown ( 'hide tree\ngroup by function task.description.length' , tasks ) ;
68+ const { markdown } = await renderMarkdown ( 'hide tree\ngroup by function task.description.length' , tasks ) ;
8969 expect ( markdown ) . toMatchInlineSnapshot ( `
9070 "
9171 #### 3
@@ -113,7 +93,7 @@ describe('MarkdownQueryResultsRenderer tests', () => {
11393- [ ] 6 🆔 id6
11494` ) ;
11595
116- const markdown = await renderMarkdown (
96+ const { markdown } = await renderMarkdown (
11797 `
11898group by function task.tags.join(',')
11999group by priority
@@ -163,7 +143,7 @@ group by id
163143 it ( 'should remove indentation for nested tasks' , async ( ) => {
164144 const tasks = readTasksFromSimulatedFile ( 'inheritance_2roots_listitem_listitem_task' ) ;
165145
166- const markdown = await renderMarkdown ( '' , tasks ) ;
146+ const { markdown } = await renderMarkdown ( '' , tasks ) ;
167147 expect ( markdown ) . toMatchInlineSnapshot ( `
168148 "
169149 - [ ] grandchild task 1
@@ -177,7 +157,7 @@ group by id
177157 'inheritance_1parent2children2grandchildren1sibling_start_with_heading' ,
178158 ) ;
179159
180- const markdown = await renderMarkdown ( 'show tree' , tasks ) ;
160+ const { markdown } = await renderMarkdown ( 'show tree' , tasks ) ;
181161 expect ( markdown ) . toMatchInlineSnapshot ( `
182162 "
183163 - [ ] #task parent task
@@ -193,7 +173,7 @@ group by id
193173 it ( 'should indent nested list items' , async ( ) => {
194174 const tasks = readTasksFromSimulatedFile ( 'inheritance_task_2listitem_3task' ) ;
195175
196- const markdown = await renderMarkdown ( 'show tree' , tasks ) ;
176+ const { markdown } = await renderMarkdown ( 'show tree' , tasks ) ;
197177 expect ( markdown ) . toMatchInlineSnapshot ( `
198178 "
199179 - [ ] parent task
@@ -210,7 +190,7 @@ group by id
210190 GlobalFilter . getInstance ( ) . set ( '#task' ) ;
211191 const tasks = readTasksFromSimulatedFile ( 'inheritance_non_task_child' ) ;
212192
213- const markdown = await renderMarkdown ( 'show tree' , tasks ) ;
193+ const { markdown } = await renderMarkdown ( 'show tree' , tasks ) ;
214194 expect ( markdown ) . toMatchInlineSnapshot ( `
215195 "
216196 - [ ] #task task parent
@@ -225,7 +205,7 @@ group by id
225205 it ( 'should use hyphen as list marker' , async ( ) => {
226206 const tasks = readTasksFromSimulatedFile ( 'mixed_list_markers' ) ;
227207
228- const markdown = await renderMarkdown ( '' , tasks ) ;
208+ const { markdown } = await renderMarkdown ( '' , tasks ) ;
229209
230210 expect ( markdown ) . toMatchInlineSnapshot ( `
231211 "
@@ -240,7 +220,7 @@ group by id
240220 it ( 'should remove callout prefixes' , async ( ) => {
241221 const tasks = readTasksFromSimulatedFile ( 'callout_labelled' ) ;
242222
243- const markdown = await renderMarkdown ( '' , tasks ) ;
223+ const { markdown } = await renderMarkdown ( '' , tasks ) ;
244224
245225 expect ( markdown ) . toMatchInlineSnapshot ( `
246226 "
@@ -253,7 +233,7 @@ group by id
253233 it ( 'should render the explanation' , async ( ) => {
254234 const tasks = readTasksFromSimulatedFile ( 'callout_labelled' ) ;
255235
256- const markdown = await renderMarkdown ( 'explain\ndescription includes indented' , tasks ) ;
236+ const { markdown } = await renderMarkdown ( 'explain\ndescription includes indented' , tasks ) ;
257237
258238 expect ( markdown ) . toMatchInlineSnapshot ( `
259239 "
0 commit comments