mirror of
https://github.com/hanzoai/tasks.git
synced 2026-10-04 02:04:03 +00:00
## What changed? Add BusinessID search attribute option. CHASM archetype developers that require Visibility will need to call `WithBusinessIDAlias` as a required RegistrableComponent option. Adds validation if BusinessIDAlias option is not set, but contains Visibility as a child component, registration to the CHASM Registry will fail. ## Why? CHASM archetypes define separate aliases for BusinessID, eg. `ActivityID`, `ScheduleID`, etc. End users of these archetypes will query Visibility using a filter such as `ActivityID = my-activity-id`, and should be able to map to the underlying shared `system` visibility storage column. ## How did you test it? - [X] built - [X] run locally and tested manually - [X] covered by existing tests - [ ] added new unit test(s) - [ ] added new functional test(s)
73 lines
2.5 KiB
Go
73 lines
2.5 KiB
Go
// TODO: move this to chasm_test package
|
|
package chasm
|
|
|
|
import (
|
|
"go.uber.org/mock/gomock"
|
|
)
|
|
|
|
type TestLibrary struct {
|
|
UnimplementedLibrary
|
|
|
|
controller *gomock.Controller
|
|
|
|
mockSideEffectTaskValidator *MockTaskValidator[any, *TestSideEffectTask]
|
|
mockSideEffectTaskExecutor *MockSideEffectTaskExecutor[any, *TestSideEffectTask]
|
|
mockOutboundSideEffectTaskValidator *MockTaskValidator[any, TestOutboundSideEffectTask]
|
|
mockOutboundSideEffectTaskExecutor *MockSideEffectTaskExecutor[any, TestOutboundSideEffectTask]
|
|
mockPureTaskValidator *MockTaskValidator[any, *TestPureTask]
|
|
mockPureTaskExecutor *MockPureTaskExecutor[any, *TestPureTask]
|
|
}
|
|
|
|
func newTestLibrary(
|
|
controller *gomock.Controller,
|
|
) *TestLibrary {
|
|
return &TestLibrary{
|
|
controller: controller,
|
|
|
|
mockSideEffectTaskValidator: NewMockTaskValidator[any, *TestSideEffectTask](controller),
|
|
mockSideEffectTaskExecutor: NewMockSideEffectTaskExecutor[any, *TestSideEffectTask](controller),
|
|
mockOutboundSideEffectTaskValidator: NewMockTaskValidator[any, TestOutboundSideEffectTask](controller),
|
|
mockOutboundSideEffectTaskExecutor: NewMockSideEffectTaskExecutor[any, TestOutboundSideEffectTask](controller),
|
|
mockPureTaskValidator: NewMockTaskValidator[any, *TestPureTask](controller),
|
|
mockPureTaskExecutor: NewMockPureTaskExecutor[any, *TestPureTask](controller),
|
|
}
|
|
}
|
|
|
|
func (l *TestLibrary) Name() string {
|
|
return testLibraryName
|
|
}
|
|
|
|
func (l *TestLibrary) Components() []*RegistrableComponent {
|
|
return []*RegistrableComponent{
|
|
NewRegistrableComponent[*TestComponent](
|
|
testComponentName,
|
|
WithBusinessIDAlias("TestBusinessId"),
|
|
WithSearchAttributes(TestComponentStartTimeSearchAttribute),
|
|
),
|
|
NewRegistrableComponent[*TestSubComponent1](testSubComponent1Name),
|
|
NewRegistrableComponent[*TestSubComponent11](testSubComponent11Name),
|
|
NewRegistrableComponent[*TestSubComponent2](testSubComponent2Name),
|
|
}
|
|
}
|
|
|
|
func (l *TestLibrary) Tasks() []*RegistrableTask {
|
|
return []*RegistrableTask{
|
|
NewRegistrableSideEffectTask(
|
|
testSideEffectTaskName,
|
|
l.mockSideEffectTaskValidator,
|
|
l.mockSideEffectTaskExecutor,
|
|
),
|
|
NewRegistrableSideEffectTask(
|
|
// NOTE this task is registered as a struct, instead of pointer to struct.
|
|
testOutboundSideEffectTaskName,
|
|
l.mockOutboundSideEffectTaskValidator,
|
|
l.mockOutboundSideEffectTaskExecutor,
|
|
),
|
|
NewRegistrablePureTask(
|
|
testPureTaskName,
|
|
l.mockPureTaskValidator,
|
|
l.mockPureTaskExecutor,
|
|
),
|
|
}
|
|
}
|