From e897cc29fc6121c76ef2791192df7fb6b19377a7 Mon Sep 17 00:00:00 2001
From: Christoph Reiter <reiter.christoph@gmail.com>
Date: Tue, 6 Aug 2019 10:49:04 +0200
Subject: [PATCH] Add test for the demo and fix a typo in disconnect

Also use the same reference for removing the event handler, bind creates a new one.
---
 packages/language-select/src/demo.js  |  5 +++--
 packages/language-select/test/unit.js | 21 ++++++++++++++++++++-
 2 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/packages/language-select/src/demo.js b/packages/language-select/src/demo.js
index 6926c4fe..dc7b9642 100644
--- a/packages/language-select/src/demo.js
+++ b/packages/language-select/src/demo.js
@@ -6,6 +6,7 @@ class LanguageSelectDemo extends LitElement {
     constructor() {
         super();
         this.lang = 'de';
+        this.handleChange =  this.handleChange.bind(this);
     }
 
     static get properties() {
@@ -20,11 +21,11 @@ class LanguageSelectDemo extends LitElement {
 
     connectedCallback() {
         super.connectedCallback();
-        window.addEventListener('vpu-language-changed', this.handleChange.bind(this));
+        window.addEventListener('vpu-language-changed', this.handleChange);
     }
 
     disconnectedCallback() {
-        windows.removeEventListener('vpu-language-changed', this.handleChange.bind(this));
+        window.removeEventListener('vpu-language-changed', this.handleChange);
         super.disconnectedCallback();
     }
 
diff --git a/packages/language-select/test/unit.js b/packages/language-select/test/unit.js
index 37bd3c1a..ea01a63e 100644
--- a/packages/language-select/test/unit.js
+++ b/packages/language-select/test/unit.js
@@ -1,4 +1,5 @@
-import '../src/language-select';
+import '../src/language-select.js';
+import '../src/demo.js';
 
 describe('vpu-language-select basics', () => {
   let node;
@@ -17,3 +18,21 @@ describe('vpu-language-select basics', () => {
       expect(node).to.have.property('shadowRoot');
   });
 });
+
+describe('vpu-language-select demo', () => {
+  let node;
+
+  beforeEach(async () => {
+    node = document.createElement('vpu-language-select-demo');
+    document.body.appendChild(node);
+    await node.updateComplete;
+  });
+
+  afterEach(() => {
+    node.remove();
+  });
+
+  it('should render', () => {
+      expect(node).to.have.property('shadowRoot');
+  });
+});
-- 
GitLab