diff --git a/packages/qr-code-scanner/karma.conf.js b/packages/qr-code-scanner/karma.conf.js index 6a646f5ec9ea5a6c50dd25dc6038dd94fff1bc43..b6731e5705b9b7419fa3831747c0a3feb0bfd074 100644 --- a/packages/qr-code-scanner/karma.conf.js +++ b/packages/qr-code-scanner/karma.conf.js @@ -4,7 +4,12 @@ process.env.CHROME_BIN = require('puppeteer').executablePath(); module.exports = function(config) { config.set({ basePath: 'dist', - frameworks: ['mocha', 'chai'], + frameworks: ['mocha'], + client: { + mocha: { + ui: 'tdd', + }, + }, files: [ {pattern: './*.js', included: true, watched: true, served: true, type: 'module'}, {pattern: './**/*', included: false, watched: true, served: true}, diff --git a/packages/qr-code-scanner/rollup.config.js b/packages/qr-code-scanner/rollup.config.js index ea73141b91160c4a47dede33e45a9d83619b5096..83266356c8b804099630e5bd4e88f6b0f0855126 100644 --- a/packages/qr-code-scanner/rollup.config.js +++ b/packages/qr-code-scanner/rollup.config.js @@ -44,6 +44,13 @@ export default (async () => { format: 'esm', sourcemap: true }, + onwarn: function (warning, warn) { + // ignore chai warnings + if (warning.code === 'CIRCULAR_DEPENDENCY') { + return; + } + warn(warning); + }, plugins: [ del({ targets: 'dist/*' diff --git a/packages/qr-code-scanner/src/qr-code-scanner.js b/packages/qr-code-scanner/src/qr-code-scanner.js index 0ef514730388831c39d05972da7a662b41783ad3..f48bf4bec5c8dd84b8fd4ec2255b9fb17affda6d 100644 --- a/packages/qr-code-scanner/src/qr-code-scanner.js +++ b/packages/qr-code-scanner/src/qr-code-scanner.js @@ -1,10 +1,9 @@ import {i18n} from './i18n'; -import {css, html, LitElement} from 'lit-element'; +import {css, html} from 'lit-element'; import DBPLitElement from 'dbp-common/dbp-lit-element'; import * as commonStyles from 'dbp-common/styles'; import {ScopedElementsMixin} from '@open-wc/scoped-elements'; -import * as commonUtils from 'dbp-common/utils'; -import {Button, Icon, MiniSpinner} from 'dbp-common'; +import {Icon, MiniSpinner} from 'dbp-common'; import {classMap} from 'lit-html/directives/class-map.js'; import jsQR from "jsqr"; @@ -13,7 +12,7 @@ import jsQR from "jsqr"; * Returns the ID for the most important device * * @param {Map} devices - * @return string|null + * @returns {string|null} the ID */ function getPrimaryDevice(devices) { if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) { @@ -31,7 +30,7 @@ function getPrimaryDevice(devices) { * * Moreimportant devices first. * - * @return Map<string,string> + * @returns {Map<string,string>} the map of devices */ async function getVideoDevices() { let devices_map = new Map(); @@ -41,7 +40,7 @@ async function getVideoDevices() { let devices; try { - devices = await navigator.mediaDevices.enumerateDevices() + devices = await navigator.mediaDevices.enumerateDevices(); } catch (err) { console.log(err.name + ": " + err.message); return devices_map; @@ -147,7 +146,7 @@ export class QrCodeScanner extends ScopedElementsMixin(DBPLitElement) { if (changedProperties.get('stopScan') && !this.stopScan) { this.qrCodeScannerInit(); } - }; + } /** * Get a loading message @@ -264,7 +263,7 @@ export class QrCodeScanner extends ScopedElementsMixin(DBPLitElement) { let maskStartX = canvasElement.width; let maskStartY = canvasElement.height; - let imageData = canvas.getImageData(0 , 0, canvasElement.width, canvasElement.height) + let imageData = canvas.getImageData(0 , 0, canvasElement.width, canvasElement.height); if (that.clipMask) { //draw mask diff --git a/packages/qr-code-scanner/test/unit.js b/packages/qr-code-scanner/test/unit.js index 78bd50cb1315f6a53d8be31f33f77e47473fbe9b..0537c74d546512a6d81cdcf1c24e82054407ebd2 100644 --- a/packages/qr-code-scanner/test/unit.js +++ b/packages/qr-code-scanner/test/unit.js @@ -1,19 +1,21 @@ +import {assert} from 'chai'; + import '../src/dbp-qr-code-scanner'; -describe('dbp-qr-code-scanner basics', () => { +suite('dbp-qr-code-scanner basics', () => { let node; - beforeEach(async () => { + suiteSetup(async () => { node = document.createElement('dbp-qr-code-scanner'); document.body.appendChild(node); await node.updateComplete; }); - afterEach(() => { + suiteTeardown(() => { node.remove(); }); - it('should render', () => { - expect(node).to.have.property('shadowRoot'); + test('should render', () => { + assert.isNotNull(node.shadowRoot); }); });