@@ -2,6 +2,7 @@ import { afterAll, beforeAll, describe, expect, test } from 'vitest'
22
33import Page from '@/frame/lib/page'
44import { liquid } from '@/content-render/index'
5+ import { renderLiquid } from '@/content-render/liquid/index'
56import languages from '@/languages/lib/languages-server'
67import nonEnterpriseDefaultVersion from '@/versions/lib/non-enterprise-default-version'
78import { DataDirectory } from '@/tests/helpers/data-directory'
@@ -20,6 +21,8 @@ describe('data tag', () => {
2021 } ,
2122 reusables : {
2223 indented_code : 'Intro\n\n```yaml\nfoo:\n bar: 1\n list:\n - a\n```' ,
24+ multi : 'First line.\n\nSecond paragraph.' ,
25+ 'multi-longer' : 'L1\nL2' ,
2326 } ,
2427 ui : {
2528 alerts : { } ,
@@ -74,4 +77,32 @@ describe('data tag', () => {
7477 )
7578 expect ( rendered ) . toContain ( '> foo:\n> bar: 1\n> list:\n> - a\n' )
7679 } )
80+
81+ test ( 'prefixes only the blockquote use when a reusable appears in a blockquote first' , async ( ) => {
82+ const rendered = await renderLiquid (
83+ '> [!NOTE]\n> {% data reusables.multi %}\n\nText.\n\n{% data reusables.multi %}' ,
84+ { currentLanguage : 'en' } ,
85+ )
86+ expect ( rendered ) . toBe (
87+ '> [!NOTE]\n> First line.\n> \n> Second paragraph.\n\nText.\n\nFirst line.\n\nSecond paragraph.' ,
88+ )
89+ } )
90+
91+ test ( 'prefixes only the blockquote use when a reusable appears in a blockquote last' , async ( ) => {
92+ const rendered = await renderLiquid (
93+ '{% data reusables.multi %}\n\nText.\n\n> [!NOTE]\n> {% data reusables.multi %}' ,
94+ { currentLanguage : 'en' } ,
95+ )
96+ expect ( rendered ) . toBe (
97+ 'First line.\n\nSecond paragraph.\n\nText.\n\n> [!NOTE]\n> First line.\n> \n> Second paragraph.' ,
98+ )
99+ } )
100+
101+ test ( 'does not prefix a reusable whose path is a prefix of a blockquoted reusable' , async ( ) => {
102+ const rendered = await renderLiquid (
103+ '> {% data reusables.multi-longer %}\n\n{% data reusables.multi %}' ,
104+ { currentLanguage : 'en' } ,
105+ )
106+ expect ( rendered ) . toBe ( '> L1\n> L2\n\nFirst line.\n\nSecond paragraph.' )
107+ } )
77108} )
0 commit comments