The logic within the describe blocks is executed BEFORE any of the IT blocks are touched.
Think of describe logic as declaration that that gets processed before any of the IT implementation logic runs. Typically putting logic directly into describe blocks in vitest is NOT recommended.
GT-Sandbox-Snapshot
Code
import { describe, it, expect, test } from 'vitest';
describe('describe-level-1', () => {
console.log("STDOUT: describe-level-1 pre it level-1");
it('it-level-1', () => {
console.log("STDOUT: it-level-1");
});
console.log("STDOUT: describe-level-1 post it level-1");
describe('describe-level-2a', () => {
console.log("STDOUT: describe-level-2a");
it('it-level-2a', () => {
console.log("STDOUT: it-level-2a");
});
describe('describe-level-3', () => {
console.log("STDOUT: describe-level-3");
it('it-level-3 1', () => {
console.log("STDOUT: it-level-3 #1");
});
it('test-level-3 2', () => {
console.log("STDOUT: it-level-3 #2");
});
});
});
describe('describe-level-2b', () => {
console.log("STDOUT: describe-level-2b");
it('it-level-2b', () => {
console.log("STDOUT: it-level-2b");
});
});
});Command to reproduce:
gt.sandbox.checkout.commit e18ef826fc7c3038372d \
&& cd "${GT_SANDBOX_REPO}" \
&& cmd.run.announce "./run.sh"Recorded output of command:
> vitest run
stdout | unknown test
STDOUT: describe-level-1 pre it level-1
STDOUT: describe-level-1 post it level-1
STDOUT: describe-level-2a
STDOUT: describe-level-3
STDOUT: describe-level-2b
stdout | src/main.test.ts > describe-level-1 > it-level-1
STDOUT: it-level-1
stdout | src/main.test.ts > describe-level-1 > describe-level-2a > it-level-2a
STDOUT: it-level-2a
✓ src/main.test.ts (5 tests) 2ms
stdout | src/main.test.ts > describe-level-1 > describe-level-2a > describe-level-3 > it-level-3 1
STDOUT: it-level-3 #1
stdout | src/main.test.ts > describe-level-1 > describe-level-2a > describe-level-3 > test-level-3 2
STDOUT: it-level-3 #2
stdout | src/main.test.ts > describe-level-1 > describe-level-2b > it-level-2b
STDOUT: it-level-2b
Test Files 1 passed (1)
Tests 5 passed (5)
Start at 15:38:08
Duration 512ms (transform 26ms, setup 0ms, collect 10ms, tests 2ms, environment 0ms, prepare 47ms)Instead of plain desribe: describe+beforeAll
Use describe+beforeAll if you want GWT with vitest/describe spec.