Vitest

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.

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)


Children
  1. Order of Operation with Describe: All 'describe' logic prior to all 'it'