All files / sportident-webusb/src FakeUSBDevice.ts

86.84% Statements 33/38
100% Branches 1/1
72.22% Functions 13/18
86.84% Lines 33/38

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 1071x   1x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x     64x       6x 6x 6x 6x       5x 5x       2x 2x               5x       5x       5x       2x       5x                     12x                     63x 60x           1x                                    
import * as utils from 'sportident/lib/utils';
 
export class FakeUSBDevice implements USBDevice {
    public readonly usbVersionMajor = 1;
    public readonly usbVersionMinor = 1;
    public readonly usbVersionSubminor = 0;
    public readonly deviceClass = 0;
    public readonly deviceSubclass = 0;
    public readonly deviceProtocol = 0;
    public readonly deviceVersionMajor = 1;
    public readonly deviceVersionMinor = 0;
    public readonly deviceVersionSubminor = 0;
    public readonly manufacturerName = undefined;
    public readonly productName = undefined;
    public readonly configuration = undefined;
    public readonly configurations = [];
 
    public get opened(): boolean {
        return this._opened;
    }
 
    constructor(
        public readonly serialNumber: string,
        public readonly vendorId: number,
        public readonly productId: number,
        private _opened: boolean = false,
    ) {}
 
    open(): Promise<void> {
        this._opened = true;
        return Promise.resolve();
    }
 
    close(): Promise<void> {
        this._opened = false;
        return Promise.resolve();
    }
 
    forget(): Promise<void> {
        return Promise.resolve();
    }
 
    reset(): Promise<void> {
        return Promise.resolve();
    }
 
    selectConfiguration(): Promise<void> {
        return Promise.resolve();
    }
 
    claimInterface(): Promise<void> {
        return Promise.resolve();
    }
 
    releaseInterface(): Promise<void> {
        return Promise.resolve();
    }
 
    selectAlternateInterface(): Promise<void> {
        return Promise.resolve();
    }
 
    controlTransferIn(
        _setup: USBControlTransferParameters,
        _length: number,
    ): Promise<USBInTransferResult> {
        return Promise.resolve({} as USBInTransferResult);
    }
 
    controlTransferOut(): Promise<USBOutTransferResult> {
        return Promise.resolve({} as USBOutTransferResult);
    }
 
    clearHalt(
        _direction: USBDirection,
        _endpointNumber: number,
    ): Promise<void> {
        return Promise.resolve();
    }
 
    transferIn(): Promise<USBInTransferResult> {
        return utils.waitFor(10)
            .then(() => ({
                data: new DataView(Uint8Array.from([0x01, 0x02, 0x03]).buffer),
            } as USBInTransferResult));
    }
 
    transferOut(): Promise<USBOutTransferResult> {
        return Promise.resolve({} as USBOutTransferResult);
    }
 
    isochronousTransferIn(
        _endpointNumber: number,
        _packetLengths: number[],
    ): Promise<USBIsochronousInTransferResult> {
        return Promise.resolve({} as USBIsochronousInTransferResult);
    }
 
    isochronousTransferOut(
        _endpointNumber: number,
        _data: BufferSource,
        _packetLengths: number[],
    ): Promise<USBIsochronousOutTransferResult> {
        return Promise.resolve({} as USBIsochronousOutTransferResult);
    }
}