odoo18/addons/barcodes/static/tests/barcode_scan.test.js

32 lines
1.1 KiB
JavaScript

/** @odoo-module **/
import { expect, test } from "@odoo/hoot";
import { waitFor } from "@odoo/hoot-dom";
import { Component, xml } from "@odoo/owl";
import { BarcodeScanner } from "@barcodes/components/barcode_scanner";
import { contains, mountWithCleanup } from "@web/../tests/web_test_helpers";
test.tags("desktop");
test("Display notification for media device permission on barcode scanning", async () => {
navigator.mediaDevices.getUserMedia = function () {
return Promise.reject(new DOMException("", "NotAllowedError"));
};
class BarcodeScan extends Component {
static template = xml`
<div>
<BarcodeScanner onBarcodeScanned="(ev) => this.onBarcodeScanned(ev)"/>
</div>
`;
static components = { BarcodeScanner };
static props = ["*"];
}
await mountWithCleanup(BarcodeScan);
await contains("a.o_mobile_barcode").click();
await waitFor(".modal-body:contains(camera)");
expect(".modal-body").toHaveText(
"Unable to access camera\nCould not start scanning. Odoo needs your authorization first."
);
});