35 lines
882 B
TypeScript
35 lines
882 B
TypeScript
|
/**
|
||
|
* The inbuilt toEqual() matcher will always return TRUE when provided with 2 ArrayBuffers.
|
||
|
* This is because an ArrayBuffer must be wrapped in a new Uint8Array to be accessible.
|
||
|
* This custom matcher will automatically instantiate a new Uint8Array on the recieved value
|
||
|
* (and optionally, the expected value) and then call toEqual() on the resulting Uint8Arrays.
|
||
|
*/
|
||
|
export const toEqualBuffer: jest.CustomMatcher = function (
|
||
|
received: ArrayBuffer,
|
||
|
expected: Uint8Array | ArrayBuffer
|
||
|
) {
|
||
|
received = new Uint8Array(received);
|
||
|
|
||
|
if (expected instanceof ArrayBuffer) {
|
||
|
expected = new Uint8Array(expected);
|
||
|
}
|
||
|
|
||
|
if (this.equals(received, expected)) {
|
||
|
return {
|
||
|
message: () => `expected
|
||
|
${received}
|
||
|
not to match
|
||
|
${expected}`,
|
||
|
pass: true,
|
||
|
};
|
||
|
}
|
||
|
|
||
|
return {
|
||
|
message: () => `expected
|
||
|
${received}
|
||
|
to match
|
||
|
${expected}`,
|
||
|
pass: false,
|
||
|
};
|
||
|
};
|