36 lines
1.2 KiB
JavaScript
36 lines
1.2 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.WeakMapPredicate = void 0;
|
|
const has_items_1 = require("../utils/has-items");
|
|
const predicate_1 = require("./predicate");
|
|
class WeakMapPredicate extends predicate_1.Predicate {
|
|
/**
|
|
@hidden
|
|
*/
|
|
constructor(options) {
|
|
super('WeakMap', options);
|
|
}
|
|
/**
|
|
Test a WeakMap to include all the provided keys. The keys are tested by identity, not structure.
|
|
|
|
@param keys - The keys that should be a key in the WeakMap.
|
|
*/
|
|
hasKeys(...keys) {
|
|
return this.addValidator({
|
|
message: (_, label, missingKeys) => `Expected ${label} to have keys \`${JSON.stringify(missingKeys)}\``,
|
|
validator: map => has_items_1.default(map, keys)
|
|
});
|
|
}
|
|
/**
|
|
Test a WeakMap to include any of the provided keys. The keys are tested by identity, not structure.
|
|
|
|
@param keys - The keys that could be a key in the WeakMap.
|
|
*/
|
|
hasAnyKeys(...keys) {
|
|
return this.addValidator({
|
|
message: (_, label) => `Expected ${label} to have any key of \`${JSON.stringify(keys)}\``,
|
|
validator: map => keys.some(key => map.has(key))
|
|
});
|
|
}
|
|
}
|
|
exports.WeakMapPredicate = WeakMapPredicate;
|