mirror of
https://github.com/oven-sh/bun
synced 2026-02-09 18:38:55 +00:00
172 lines
4.2 KiB
TypeScript
172 lines
4.2 KiB
TypeScript
export function wrap({
|
|
test: test_,
|
|
it: it_,
|
|
describe: describe_,
|
|
beforeEach: beforeEach_ = undefined,
|
|
beforeAll: beforeAll_ = undefined,
|
|
afterEach: afterEach_ = undefined,
|
|
afterAll: afterAll_ = undefined,
|
|
}) {
|
|
if (it_ === undefined) {
|
|
it_ = test_;
|
|
}
|
|
|
|
var describe = (label, cb) => {
|
|
return describe_(
|
|
label,
|
|
cb instanceof async function () {}.constructor
|
|
? async () => {
|
|
console.log(`DESCRIBE [Enter] ${label}`);
|
|
try {
|
|
return await cb();
|
|
} catch (e) {
|
|
throw e;
|
|
} finally {
|
|
console.log(`DESCRIBE [Exit] ${label}`);
|
|
}
|
|
}
|
|
: () => {
|
|
console.log(`DESCRIBE [Enter] ${label}`);
|
|
try {
|
|
return cb();
|
|
} catch (e) {
|
|
throw e;
|
|
} finally {
|
|
console.log(`DESCRIBE [Exit] ${label}`);
|
|
}
|
|
}
|
|
);
|
|
};
|
|
|
|
var it = (label, cb) => {
|
|
console.log("Before", label);
|
|
return it_(
|
|
label,
|
|
cb instanceof async function () {}.constructor
|
|
? async () => {
|
|
console.log(`TEST [Enter] ${label}`);
|
|
try {
|
|
return await cb();
|
|
} catch (e) {
|
|
throw e;
|
|
} finally {
|
|
console.log(`TEST [Exit] ${label}`);
|
|
}
|
|
}
|
|
: () => {
|
|
console.log(`TEST [Enter] ${label}`);
|
|
try {
|
|
return cb();
|
|
} catch (e) {
|
|
throw e;
|
|
} finally {
|
|
console.log(`TEST [Exit] ${label}`);
|
|
}
|
|
}
|
|
);
|
|
};
|
|
|
|
var beforeEach = (cb) => {
|
|
return beforeEach_(
|
|
cb instanceof async function () {}.constructor
|
|
? async () => {
|
|
console.log(`BEFORE EACH [Enter]`);
|
|
try {
|
|
return await cb();
|
|
} catch (e) {
|
|
throw e;
|
|
} finally {
|
|
console.log(`BEFORE EACH [Exit]`);
|
|
}
|
|
}
|
|
: () => {
|
|
console.log(`BEFORE EACH [Enter]`);
|
|
try {
|
|
return cb();
|
|
} catch (e) {
|
|
throw e;
|
|
} finally {
|
|
console.log(`BEFORE EACH [Exit]`);
|
|
}
|
|
}
|
|
);
|
|
};
|
|
var beforeAll = (cb) => {
|
|
return beforeAll_(
|
|
cb instanceof async function () {}.constructor
|
|
? async () => {
|
|
console.log(`BEFORE ALL [Enter]`);
|
|
try {
|
|
return await cb();
|
|
} catch (e) {
|
|
throw e;
|
|
} finally {
|
|
console.log(`BEFORE ALL [Exit]`);
|
|
}
|
|
}
|
|
: () => {
|
|
console.log(`BEFORE ALL [Enter]`);
|
|
try {
|
|
return cb();
|
|
} catch (e) {
|
|
throw e;
|
|
} finally {
|
|
console.log(`BEFORE ALL [Exit]`);
|
|
}
|
|
}
|
|
);
|
|
};
|
|
var afterEach = (cb) => {
|
|
return afterEach_(
|
|
cb instanceof async function () {}.constructor
|
|
? async () => {
|
|
console.log(`AFTER EACH [Enter]`);
|
|
try {
|
|
return await cb();
|
|
} catch (e) {
|
|
throw e;
|
|
} finally {
|
|
console.log(`AFTER EACH [Exit]`);
|
|
}
|
|
}
|
|
: () => {
|
|
console.log(`AFTER EACH [Enter]`);
|
|
try {
|
|
return cb();
|
|
} catch (e) {
|
|
throw e;
|
|
} finally {
|
|
console.log(`AFTER EACH [Exit]`);
|
|
}
|
|
}
|
|
);
|
|
};
|
|
var afterAll = (cb) => {
|
|
return afterAll_(
|
|
cb instanceof async function () {}.constructor
|
|
? async () => {
|
|
console.log(`AFTER ALL [Enter]`);
|
|
try {
|
|
return await cb();
|
|
} catch (e) {
|
|
throw e;
|
|
} finally {
|
|
console.log(`AFTER ALL [Exit]`);
|
|
}
|
|
}
|
|
: () => {
|
|
console.log(`AFTER ALL [Enter]`);
|
|
try {
|
|
return cb();
|
|
} catch (e) {
|
|
throw e;
|
|
} finally {
|
|
console.log(`AFTER ALL [Exit]`);
|
|
}
|
|
}
|
|
);
|
|
};
|
|
|
|
return { describe, it, beforeEach, beforeAll, afterEach, afterAll };
|
|
}
|