import { expect } from "chai";
import { Html5QrcodeScanType } from "../../../src/core";
import { ScanTypeSelector } from "../../../src/ui/scanner/scan-type-selector";
describe("ScanTypeSelector#getDefaultScanType()", () => {
it("Camera + File returns camera", () => {
let selector = new ScanTypeSelector([
Html5QrcodeScanType.SCAN_TYPE_CAMERA,
Html5QrcodeScanType.SCAN_TYPE_FILE]);
expect(selector.getDefaultScanType()).to.equal(
Html5QrcodeScanType.SCAN_TYPE_CAMERA);
});
it("File + Camera returns camera", () => {
let selector = new ScanTypeSelector([
Html5QrcodeScanType.SCAN_TYPE_FILE,
Html5QrcodeScanType.SCAN_TYPE_CAMERA]);
expect(selector.getDefaultScanType()).to.equal(
Html5QrcodeScanType.SCAN_TYPE_FILE);
});
it("Camera returns camera", () => {
let selector = new ScanTypeSelector([
Html5QrcodeScanType.SCAN_TYPE_CAMERA]);
expect(selector.getDefaultScanType()).to.equal(
Html5QrcodeScanType.SCAN_TYPE_CAMERA);
});
it("File returns camera", () => {
let selector = new ScanTypeSelector([
Html5QrcodeScanType.SCAN_TYPE_FILE]);
expect(selector.getDefaultScanType()).to.equal(
Html5QrcodeScanType.SCAN_TYPE_FILE);
});
});
describe("ScanTypeSelector#hasMoreThanOneScanType()", () => {
it("Both values set - returns true", () => {
let selector = new ScanTypeSelector([
Html5QrcodeScanType.SCAN_TYPE_CAMERA,
Html5QrcodeScanType.SCAN_TYPE_FILE]);
expect(selector.hasMoreThanOneScanType()).to.be.true;
selector = new ScanTypeSelector([
Html5QrcodeScanType.SCAN_TYPE_FILE,
Html5QrcodeScanType.SCAN_TYPE_CAMERA]);
expect(selector.hasMoreThanOneScanType()).to.be.true;
});
it("Single value set - returns true", () => {
let selector = new ScanTypeSelector([
Html5QrcodeScanType.SCAN_TYPE_CAMERA]);
expect(selector.hasMoreThanOneScanType()).to.be.false;
selector = new ScanTypeSelector([
Html5QrcodeScanType.SCAN_TYPE_FILE]);
expect(selector.hasMoreThanOneScanType()).to.be.false;
});
});
describe("ScanTypeSelector#isCameraScanRequired()", () => {
it("Both values set - returns true", () => {
let selector = new ScanTypeSelector([
Html5QrcodeScanType.SCAN_TYPE_CAMERA,
Html5QrcodeScanType.SCAN_TYPE_FILE]);
expect(selector.isCameraScanRequired()).to.be.true;
selector = new ScanTypeSelector([
Html5QrcodeScanType.SCAN_TYPE_FILE,
Html5QrcodeScanType.SCAN_TYPE_CAMERA]);
expect(selector.isCameraScanRequired()).to.be.true;
});
it("Camera only set - returns true", () => {
let selector = new ScanTypeSelector([
Html5QrcodeScanType.SCAN_TYPE_CAMERA]);
expect(selector.isCameraScanRequired()).to.be.true;
});
it("File only set - returns false", () => {
let selector = new ScanTypeSelector([
Html5QrcodeScanType.SCAN_TYPE_FILE]);
expect(selector.isCameraScanRequired()).to.be.false;
});
});
describe("ScanTypeSelector#isCameraScanType()", () => {
it("Camera passed - returns true", () => {
expect(ScanTypeSelector.isCameraScanType(
Html5QrcodeScanType.SCAN_TYPE_CAMERA)).to.be.true;
});
it("File passed - returns false", () => {
expect(ScanTypeSelector.isCameraScanType(
Html5QrcodeScanType.SCAN_TYPE_FILE)).to.be.false;
});
});
describe("ScanTypeSelector#isFileScanType()", () => {
it("Camera passed - returns false", () => {
expect(ScanTypeSelector.isFileScanType(
Html5QrcodeScanType.SCAN_TYPE_CAMERA)).to.be.false;
});
it("File passed - returns true", () => {
expect(ScanTypeSelector.isFileScanType(
Html5QrcodeScanType.SCAN_TYPE_FILE)).to.be.true;
});
});