Files
Jay Savaliya 35d3fb57d6 [FIX] barcodes: handle error message on barcode scanning
Before this commit:
Got a traceback instead of an error message on scanning a barcode.

Reason:
Until 16.4 error message send in the object via Eventbus, which removed in
https://github.com/odoo/odoo/commit/72dbb75d4de529a35c45273ded472d038a7bb738 so because of that error message will be sent directly(not in object).

After this commit:
User will get an error message if anything wrong happened.

Task:3524284

closes odoo/odoo#138877

Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2023-12-22 07:10:48 +00:00

33 lines
1.1 KiB
JavaScript

/** @odoo-module **/
import { BarcodeScanner } from "@barcodes/components/barcode_scanner";
import { getFixture, mount } from "@web/../tests/helpers/utils";
import { contains } from "@web/../tests/utils";
import { createWebClient } from "@web/../tests/webclient/helpers";
import { xml, Component } from "@odoo/owl";
QUnit.module("Barcode scan", {});
QUnit.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 {}
BarcodeScan.components = { BarcodeScanner };
BarcodeScan.template = xml`
<div>
<BarcodeScanner onBarcodeScanned="(ev) => this.onBarcodeScanned(ev)"/>
</div>
`;
const target = getFixture();
const { env } = await createWebClient({});
await mount(BarcodeScan, target, { env });
await document.querySelector('.o_mobile_barcode').click();
await contains(".o_notification", { text: "Could not start scanning. Odoo needs your authorization first." });
})