@@ -41,3 +41,48 @@ test("x-format: context aware", async ({ page }) => {
4141 await expect ( page . locator ( "#id_4" ) ) . toContainText ( "id_4" ) ;
4242 await expect ( page . locator ( "#id_3" ) ) . toHaveAttribute ( "title" , "id_3" ) ;
4343} ) ;
44+
45+ test ( "x-format: nested x-data" , async ( { page } ) => {
46+ await set_html ( page , `
47+ <div x-data="{ value1: 3.14 }" x-format>
48+ <div x-data="{ value2: 2.71 }">
49+ <span id="v2">{{ value2 }}</span>
50+ <button id="b2" @click="value2 = 'math.e'">Change</button>
51+ </div>
52+
53+ <span id="v1">{{ value1 }}</span>
54+ <button id="b1" @click="value1 = 'math.pi'">Change</button>
55+ </div>` ) ;
56+
57+ await expect ( page . locator ( "#v1" ) ) . toContainText ( "3.14" ) ;
58+ await expect ( page . locator ( "#v2" ) ) . toContainText ( "2.71" ) ;
59+
60+ await page . locator ( "#b1" ) . click ( ) ;
61+ await expect ( page . locator ( "#v1" ) ) . toContainText ( "math.pi" ) ;
62+
63+ await page . locator ( "#b2" ) . click ( ) ;
64+ await expect ( page . locator ( "#v2" ) ) . toContainText ( "math.e" ) ;
65+ } ) ;
66+
67+ test ( "x-format: nested x-data with manually x-format" , async ( { page } ) => {
68+ await set_html ( page , `
69+ <div x-data="{ value1: 3.14 }" x-format>
70+ <div x-data="{ value2: 2.71 }" x-format>
71+ <span id="v2">{{ value2 }}</span>
72+ <button id="b2" @click="value2 = 'math.e'">Change</button>
73+ </div>
74+
75+ <span id="v1">{{ value1 }}</span>
76+ <button id="b1" @click="value1 = 'math.pi'">Change</button>
77+ </div>` ) ;
78+
79+ await expect ( page . locator ( "#v1" ) ) . toContainText ( "3.14" ) ;
80+ await expect ( page . locator ( "#v2" ) ) . toContainText ( "2.71" ) ;
81+
82+ await page . locator ( "#b1" ) . click ( ) ;
83+ await expect ( page . locator ( "#v1" ) ) . toContainText ( "math.pi" ) ;
84+
85+ await page . locator ( "#b2" ) . click ( ) ;
86+ await expect ( page . locator ( "#v2" ) ) . toContainText ( "math.e" ) ;
87+ } ) ;
88+
0 commit comments