mirror of
https://github.com/hanzoai/tasks.git
synced 2026-11-03 03:56:04 +00:00
Full module path rebrand from Temporal to Hanzo Tasks: - go.mod module: github.com/hanzoai/tasks - All internal Go imports updated (1906 files) - cmd/server renamed to cmd/tasksd - Binary name: tasksd (was temporal-server) - Docker images: hanzoai/tasks (was temporalio/server) - README rewritten with Hanzo Tasks branding - LLM.md created with integration notes - Makefile, goreleaser, CI workflows updated - go.temporal.io/sdk and go.temporal.io/api imports preserved (separate repos) Fork of Temporal.io (MIT license).
57 lines
1.3 KiB
Go
57 lines
1.3 KiB
Go
package clock_test
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/hanzoai/tasks/common/clock"
|
|
)
|
|
|
|
func TestContextWithTimeout_Canceled(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
timeSource := clock.NewEventTimeSource()
|
|
timeSource.Update(time.Unix(0, 0))
|
|
ctx := context.Background()
|
|
ctx, cancel := clock.ContextWithTimeout(ctx, time.Second, timeSource)
|
|
deadline, ok := ctx.Deadline()
|
|
assert.True(t, ok)
|
|
assert.Equal(t, time.Unix(1, 0), deadline)
|
|
cancel()
|
|
select {
|
|
case <-ctx.Done():
|
|
assert.ErrorIs(t, ctx.Err(), context.Canceled)
|
|
default:
|
|
t.Fatal("expected context to be canceled")
|
|
}
|
|
}
|
|
|
|
func TestContextWithTimeout_Fire(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
timeSource := clock.NewEventTimeSource()
|
|
timeSource.Update(time.Unix(0, 0))
|
|
ctx := context.Background()
|
|
ctx, cancel := clock.ContextWithTimeout(ctx, time.Second, timeSource)
|
|
deadline, ok := ctx.Deadline()
|
|
assert.True(t, ok)
|
|
assert.Equal(t, time.Unix(1, 0), deadline)
|
|
timeSource.Advance(time.Second - time.Millisecond)
|
|
select {
|
|
case <-ctx.Done():
|
|
t.Fatal("expected context to not be canceled")
|
|
default:
|
|
assert.NoError(t, ctx.Err())
|
|
}
|
|
timeSource.Advance(time.Millisecond)
|
|
select {
|
|
case <-ctx.Done():
|
|
assert.ErrorIs(t, ctx.Err(), context.DeadlineExceeded)
|
|
default:
|
|
t.Fatal("expected context to be canceled")
|
|
}
|
|
cancel() // should be a no-op
|
|
}
|