Part D: Test a Workflow Definition - Test fails in before hook's createTimeSkipping call

I’m running into the following failing test issue when attempting Part D of Hands-On Exercise #2: Testing the Translation Workflow.

3 passing (2s)
1 failing

1) SayHelloGoodbye workflow
“before all” hook for “successfully completes French translation”:
Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure “done()” is called; if returning a Promise, ensure it resolves. (/home/rgroves/dev/edu-102-typescript-code/exercises/testing-code/practice/src/mocha/workflows.test.ts)
at listOnTimeout (node:internal/timers:573:17)
at processTimers (node:internal/timers:514:7)

I found a possibly related thread here, but no resolution was given within. I had actually done similar to what the user David_Clark did in that thread, adding console.logs before and after the call to createTimeSkipping, but the second log is never hit.

  before(async () => {
    console.log('Setting up test environment...');
    testEnv = await TestWorkflowEnvironment.createTimeSkipping();
    console.log('Test environment set up successfully.');
  });

I noticed in the docs for createTimeSkipping it states:

This environment will be powered by the Temporal Time Skipping Test Server (part of the Java SDK)

Which makes me wonder if I need to do anything explicitly with the Java SDK? My environment does have openjdk v21.0.7 installed.

Also see that the docs mention:

IMPORTANT: At this time, the Time Skipping Test Server is not supported on ARM platforms.

I’ve ruled that out as an issue though. Some details about my environment if helpful:
OS: Ubuntu 22.04.5 LTS via Windows 11 WSL2
CPU: x86_64 architecture

It looks like options can be passed that include a way specify a path to an EphemeralServerExecutable. Is there a downloadable binary for this? Or can it somehow be built via the Temporal Java SDK?

Any guidance would be much appreciated.

Disregard, I was able to workaround the issue as follows:

  1. Downloaded the test server temporal-test-server_1.29.0_linux_amd64.tar.gz from Releases · temporalio/sdk-java · GitHub
  2. Unpacked the temporal-test-server file and marked it as executable
  3. Changed the call in the before hook to add options to the createTimeSkipping call to point to the executable per the documentation
before(async () => {
  console.log('Setting up test environment...');
  testEnv = await TestWorkflowEnvironment.createTimeSkipping({
    server: {
      executable: {
        path: '/my/path/to/temporal-test-server',
        type: 'existing-path',
      },
    },
  });
  console.log('Test environment set up successfully.');
});

Re-ran the tests and all passed as expected.