Skip to content

Commit 7dc34fc

Browse files
authored
feat(ssr): implement fixes for known issues (#5188)
* chore: add test for api-decorated super field * fix: api-decorated fields on non-LightningElement super class * chore: cleanup previous commit * chore: add failing test for subclass edge case * fix: ssr superclass edge case * chore: augment test with truthy/falsey if:true blocks * fix: legacy if-blocks for truthy/falsey conditions in SSRv2 * fix: behavior of SSR compiler when DiagnosticLevel.Fatal message is encountered * feat: implement ClassList#length
1 parent 1350a3e commit 7dc34fc

File tree

23 files changed

+163
-33
lines changed

23 files changed

+163
-33
lines changed

packages/@lwc/engine-server/src/__tests__/fixtures/api/inherited/error.txt

Whitespace-only changes.
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<x-parent>
2+
<template shadowrootmode="open">
3+
<x-child>
4+
<template shadowrootmode="open">
5+
<p>
6+
Super: super string theory
7+
</p>
8+
<p>
9+
Untalented: untalented string theory
10+
</p>
11+
</template>
12+
</x-child>
13+
<x-child>
14+
<template shadowrootmode="open">
15+
<p>
16+
Super: field api value
17+
</p>
18+
<p>
19+
Untalented: field api value
20+
</p>
21+
</template>
22+
</x-child>
23+
</template>
24+
</x-parent>
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export const tagName = 'x-parent';
2+
export { default } from 'x/parent';
3+
export * from 'x/parent';
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<template>
2+
<p>Super: {superField}</p>
3+
<p>Untalented: {untalentedField}</p>
4+
</template>
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import { api } from 'lwc';
2+
import SuperChild from 'x/superChild';
3+
4+
export default class Child extends SuperChild {
5+
@api untalentedField;
6+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<template>
2+
<x-child untalented-field="untalented string theory" super-field="super string theory"></x-child>
3+
<x-child untalented-field={fieldApiValue} super-field={fieldApiValue}></x-child>
4+
</template>
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import { LightningElement } from 'lwc';
2+
3+
export default class Parent extends LightningElement {
4+
fieldApiValue = 'field api value';
5+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import { LightningElement, api } from 'lwc';
2+
3+
export default class SuperChild extends LightningElement {
4+
@api superField;
5+
}

packages/@lwc/engine-server/src/__tests__/fixtures/getter-class-list/modules/x/getter-class-list/getter-class-list.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,6 @@ export default class GetterClassList extends LightningElement {
99
classList.remove('b');
1010

1111
expect(this.getAttribute('class')).toBe('a c d-e');
12+
expect(() => this.classList.length).not.toThrow();
1213
}
1314
}
Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,22 @@
11
<x-if-block>
22
<template shadowrootmode="open">
3-
I am rendered!
3+
<h1>
4+
True!
5+
</h1>
6+
<p>
7+
I am rendered because I am true to myself!
8+
</p>
9+
<p>
10+
I am rendered because I am true enough!
11+
</p>
12+
<h1>
13+
False!
14+
</h1>
15+
<p>
16+
I am rendered because I am very false!
17+
</p>
18+
<p>
19+
I am rendered because I am untrustworthy!
20+
</p>
421
</template>
522
</x-if-block>

0 commit comments

Comments
 (0)