summaryrefslogtreecommitdiff
path: root/packages/astro/test/lit-element.test.js
diff options
context:
space:
mode:
authorGravatar Elliott Marquez <5981958+e111077@users.noreply.github.com> 2021-11-22 13:01:32 -0800
committerGravatar GitHub <noreply@github.com> 2021-11-22 15:01:32 -0600
commitec01d1b43f069d909a18bfb73ee414f954d25c9a (patch)
tree4d72b2cba89772d1c16eb9624fcfa16e1251c554 /packages/astro/test/lit-element.test.js
parentc22e4c69ec3c544abda22d48526193c66351ccd9 (diff)
downloadastro-ec01d1b43f069d909a18bfb73ee414f954d25c9a.tar.gz
astro-ec01d1b43f069d909a18bfb73ee414f954d25c9a.tar.zst
astro-ec01d1b43f069d909a18bfb73ee414f954d25c9a.zip
fix(lit-renderer): certain reactive props not init correctly (#1874)
* fix(lit-renderer): reactive props not init correctly * test(renderer-lit): implement testing suggestiosn * chore(renderer-lit): upload changeset * fix(renderer-lit): call connCallback on server * fix(renderer-lit): do not set reserved JSX props * fix(renderer-lit): do not check for reserved attributes Co-authored-by: Nate Moore <nate@skypack.dev>
Diffstat (limited to '')
-rw-r--r--packages/astro/test/lit-element.test.js20
1 files changed, 19 insertions, 1 deletions
diff --git a/packages/astro/test/lit-element.test.js b/packages/astro/test/lit-element.test.js
index dd44ae3da..eed211d91 100644
--- a/packages/astro/test/lit-element.test.js
+++ b/packages/astro/test/lit-element.test.js
@@ -5,6 +5,7 @@ import { loadFixture } from './test-utils.js';
let fixture;
const NODE_VERSION = parseFloat(process.versions.node);
+const stripExpressionMarkers = (html) => html.replace(/<!--\/?lit-part-->/g, '')
before(async () => {
// @lit-labs/ssr/ requires Node 13.9 or higher
@@ -27,11 +28,28 @@ describe('LitElement test', () => {
const html = await fixture.readFile('/index.html');
const $ = cheerio.load(html);
- // test 1: attributes rendered
+ // test 1: attributes rendered – non reactive properties
expect($('my-element').attr('foo')).to.equal('bar');
// test 2: shadow rendered
expect($('my-element').html()).to.include(`<div>Testing...</div>`);
+
+ // test 3: string reactive property set
+ expect(stripExpressionMarkers($('my-element').html())).to.include(`<div id="str">initialized</div>`);
+
+ // test 4: boolean reactive property correctly set
+ // <my-element bool="false"> Lit will equate to true because it uses
+ // this.hasAttribute to determine its value
+ expect(stripExpressionMarkers($('my-element').html())).to.include(`<div id="bool">B</div>`);
+
+ // test 5: object reactive property set
+ // by default objects will be stringifed to [object Object]
+ expect(stripExpressionMarkers($('my-element').html())).to.include(`<div id="data">data: 1</div>`);
+
+ // test 6: reactive properties are not rendered as attributes
+ expect($('my-element').attr('obj')).to.equal(undefined);
+ expect($('my-element').attr('bool')).to.equal(undefined);
+ expect($('my-element').attr('str')).to.equal(undefined);
});
// Skipped because not supported by Lit