Skip to content

Commit

Permalink
test(WorkerState): update test suite to remove async/await and use as…
Browse files Browse the repository at this point in the history
…sertThrows

Refactored test cases for WorkerState to:
- Remove async/await from test methods
- Replace assertRejects with assertThrows
- Simplify test method signatures
- Maintain existing test coverage and logic
  • Loading branch information
jumski committed Jan 17, 2025
1 parent b9ea859 commit d811523
Showing 1 changed file with 22 additions and 25 deletions.
47 changes: 22 additions & 25 deletions pkgs/edge-worker/tests/unit/WorkerState.test.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { assertEquals, assertRejects } from '@std/assert';
import { assertEquals, assertThrows } from '@std/assert';
import { WorkerState, States, TransitionError } from '../../src/WorkerState.ts';

Deno.test('WorkerState - initial state should be Created', () => {
Expand All @@ -7,65 +7,62 @@ Deno.test('WorkerState - initial state should be Created', () => {
assertEquals(state.isCreated, true);
});

Deno.test('WorkerState - valid state transitions', async () => {
Deno.test('WorkerState - valid state transitions', () => {
const state = new WorkerState();

// Created -> Starting
await state.transitionTo(States.Starting);
state.transitionTo(States.Starting);
assertEquals(state.current, States.Starting);
assertEquals(state.isStarting, true);

// Starting -> Running
await state.transitionTo(States.Running);
state.transitionTo(States.Running);
assertEquals(state.current, States.Running);
assertEquals(state.isRunning, true);

// Running -> Stopping
await state.transitionTo(States.Stopping);
state.transitionTo(States.Stopping);
assertEquals(state.current, States.Stopping);
assertEquals(state.isStopping, true);

// Stopping -> Stopped
await state.transitionTo(States.Stopped);
state.transitionTo(States.Stopped);
assertEquals(state.current, States.Stopped);
});

Deno.test('WorkerState - invalid state transitions should throw', async () => {
Deno.test('WorkerState - invalid state transitions should throw', () => {
const state = new WorkerState();

// Cannot transition from Created to Running
await assertRejects(
async () => {
await state.transitionTo(States.Running);
assertThrows(
() => {
state.transitionTo(States.Running);
},
TransitionError,
'Cannot transition from created to running'
);

// Cannot transition from Created to Stopped
await assertRejects(
async () => {
await state.transitionTo(States.Stopped);
assertThrows(
() => {
state.transitionTo(States.Stopped);
},
TransitionError,
'Cannot transition from created to stopped'
);
});

Deno.test(
'WorkerState - transitioning to same state should be no-op',
async () => {
const state = new WorkerState();
Deno.test('WorkerState - transitioning to same state should be no-op', () => {
const state = new WorkerState();

// Transition to Starting first
await state.transitionTo(States.Starting);
assertEquals(state.current, States.Starting);
// Transition to Starting first
state.transitionTo(States.Starting);
assertEquals(state.current, States.Starting);

// Transition to Starting again
await state.transitionTo(States.Starting);
assertEquals(state.current, States.Starting);
}
);
// Transition to Starting again
state.transitionTo(States.Starting);
assertEquals(state.current, States.Starting);
});

Deno.test('WorkerState - state getters', () => {
const state = new WorkerState();
Expand Down

0 comments on commit d811523

Please sign in to comment.