@riddance/service
Version:
Too much code slows you down, creates risks, increases maintainability burdens, confuses AI. So let's commit less of it.
42 lines • 4.78 kB
JavaScript
import { getTestContext } from './setup.js';
export function getLoggedEntries() {
return getTestContext().log.getEntries();
}
export function clearLoggedEntries() {
getTestContext().log.clear();
}
export function getEmitted() {
return [...getTestContext().emitted];
}
export function clearEmitted() {
getTestContext().emitted = [];
}
export function allowErrorLogs() {
const l = getTestContext().log;
l.failOnErrorLogs = false;
return {
[Symbol.dispose]: () => {
l.failOnErrorLogs = true;
},
};
}
export function timeShift(seconds) {
getTestContext().timeShift += seconds;
}
export function timeShiftTo(when) {
getTestContext().timeShift = 0;
timeShift((when.getTime() - Date.now()) / 1000);
}
export function freezeTime(when) {
getTestContext().frozenTime = when.getTime();
}
export function unfreezeTime() {
getTestContext().frozenTime = undefined;
}
export function getEnvironment() {
return { ...getTestContext().env };
}
export function setEnvironment(env) {
Object.assign(getTestContext().env, env);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUUzQyxNQUFNLFVBQVUsZ0JBQWdCO0lBQzVCLE9BQU8sY0FBYyxFQUFFLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxDQUFBO0FBQzVDLENBQUM7QUFFRCxNQUFNLFVBQVUsa0JBQWtCO0lBQzlCLGNBQWMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtBQUNoQyxDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVU7SUFPdEIsT0FBTyxDQUFDLEdBQUcsY0FBYyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUE7QUFDeEMsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZO0lBQ3hCLGNBQWMsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUE7QUFDakMsQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjO0lBQzFCLE1BQU0sQ0FBQyxHQUFHLGNBQWMsRUFBRSxDQUFDLEdBQUcsQ0FBQTtJQUM5QixDQUFDLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQTtJQUN6QixPQUFPO1FBQ0gsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRyxFQUFFO1lBQ25CLENBQUMsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFBO1FBQzVCLENBQUM7S0FDSixDQUFBO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSxTQUFTLENBQUMsT0FBZTtJQUNyQyxjQUFjLEVBQUUsQ0FBQyxTQUFTLElBQUksT0FBTyxDQUFBO0FBQ3pDLENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFDLElBQVU7SUFDbEMsY0FBYyxFQUFFLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQTtJQUM5QixTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUE7QUFDbkQsQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVLENBQUMsSUFBVTtJQUNqQyxjQUFjLEVBQUUsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFBO0FBQ2hELENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWTtJQUN4QixjQUFjLEVBQUUsQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFBO0FBQzNDLENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYztJQUMxQixPQUFPLEVBQUUsR0FBRyxjQUFjLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQTtBQUN0QyxDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxHQUF5QjtJQUNwRCxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQTtBQUM1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9nRW50cnkgfSBmcm9tICdAcmlkZGFuY2UvaG9zdC9jb250ZXh0J1xuaW1wb3J0IHsgRW52aXJvbm1lbnQsIEpzb24gfSBmcm9tICcuLi9jb250ZXh0LmpzJ1xuaW1wb3J0IHsgZ2V0VGVzdENvbnRleHQgfSBmcm9tICcuL3NldHVwLmpzJ1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TG9nZ2VkRW50cmllcygpOiBMb2dFbnRyeVtdIHtcbiAgICByZXR1cm4gZ2V0VGVzdENvbnRleHQoKS5sb2cuZ2V0RW50cmllcygpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhckxvZ2dlZEVudHJpZXMoKSB7XG4gICAgZ2V0VGVzdENvbnRleHQoKS5sb2cuY2xlYXIoKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RW1pdHRlZCgpOiB7XG4gICAgdG9waWM6IHN0cmluZ1xuICAgIHR5cGU6IHN0cmluZ1xuICAgIHN1YmplY3Q6IHN0cmluZ1xuICAgIGRhdGE/OiBKc29uXG4gICAgbWVzc2FnZUlkPzogc3RyaW5nXG59W10ge1xuICAgIHJldHVybiBbLi4uZ2V0VGVzdENvbnRleHQoKS5lbWl0dGVkXVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xlYXJFbWl0dGVkKCkge1xuICAgIGdldFRlc3RDb250ZXh0KCkuZW1pdHRlZCA9IFtdXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhbGxvd0Vycm9yTG9ncygpIHtcbiAgICBjb25zdCBsID0gZ2V0VGVzdENvbnRleHQoKS5sb2dcbiAgICBsLmZhaWxPbkVycm9yTG9ncyA9IGZhbHNlXG4gICAgcmV0dXJuIHtcbiAgICAgICAgW1N5bWJvbC5kaXNwb3NlXTogKCkgPT4ge1xuICAgICAgICAgICAgbC5mYWlsT25FcnJvckxvZ3MgPSB0cnVlXG4gICAgICAgIH0sXG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdGltZVNoaWZ0KHNlY29uZHM6IG51bWJlcikge1xuICAgIGdldFRlc3RDb250ZXh0KCkudGltZVNoaWZ0ICs9IHNlY29uZHNcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRpbWVTaGlmdFRvKHdoZW46IERhdGUpIHtcbiAgICBnZXRUZXN0Q29udGV4dCgpLnRpbWVTaGlmdCA9IDBcbiAgICB0aW1lU2hpZnQoKHdoZW4uZ2V0VGltZSgpIC0gRGF0ZS5ub3coKSkgLyAxMDAwKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZnJlZXplVGltZSh3aGVuOiBEYXRlKSB7XG4gICAgZ2V0VGVzdENvbnRleHQoKS5mcm96ZW5UaW1lID0gd2hlbi5nZXRUaW1lKClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuZnJlZXplVGltZSgpIHtcbiAgICBnZXRUZXN0Q29udGV4dCgpLmZyb3plblRpbWUgPSB1bmRlZmluZWRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEVudmlyb25tZW50KCkge1xuICAgIHJldHVybiB7IC4uLmdldFRlc3RDb250ZXh0KCkuZW52IH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEVudmlyb25tZW50KGVudjogUGFydGlhbDxFbnZpcm9ubWVudD4pIHtcbiAgICBPYmplY3QuYXNzaWduKGdldFRlc3RDb250ZXh0KCkuZW52LCBlbnYpXG59XG4iXX0=