refactor: regenerate mocks for WebUIHandlerRouter/WebUIMessageHandler, use in tests
- Add WebUIMessageHandler and WebUIHandlerRouter to .mockery.yaml - Remove old MessageRouter (interface deleted) - Regenerate all mocks via mockery - Replace ad-hoc stubRouter/stubAccentHandler in register_test.go with MockWebUIHandlerRouter and MockAccentKeyHandler from mockery
- commit
- 179d874c1616f2d2e11515c7c185fc59ded10d8a
- author
- brice · · 2026-03-21 21:53 UTC
- committer
- brice · · 2026-03-28 04:38 UTC
- parent
- a844552
- signature
- GPG Verified
CD88F9E564E0102646FB6077A1A07C7C7C3E349D· arch-gpg Verified for the committer email
4 files · +234 -126
M .mockery.yaml +2 -1
| @@ -35,7 +35,8 @@ packages: | |||
| 35 | 35 | Engine: {} | |
| 36 | 36 | ContentInjector: {} | |
| 37 | 37 | SchemeHandler: {} | |
| 38 | - | MessageRouter: {} | |
| 38 | + | WebUIMessageHandler: {} | |
| 39 | + | WebUIHandlerRouter: {} | |
| 39 | 40 | SettingsApplier: {} | |
| 40 | 41 | FilterApplier: {} | |
| 41 | 42 | FaviconDatabase: {} | |
| @@ -35,7 +35,8 @@ packages: | |||||
| 35 | Engine: {} | 35 | Engine: {} | ||
| 36 | ContentInjector: {} | 36 | ContentInjector: {} | ||
| 37 | SchemeHandler: {} | 37 | SchemeHandler: {} | ||
| 38 | - | MessageRouter: {} | 38 | + | WebUIMessageHandler: {} |
| 39 | + | WebUIHandlerRouter: {} | |||
| 39 | SettingsApplier: {} | 40 | SettingsApplier: {} | ||
| 40 | FilterApplier: {} | 41 | FilterApplier: {} | ||
| 41 | FaviconDatabase: {} | 42 | FaviconDatabase: {} | ||
M internal/application/port/mocks/mocks.go +202 -71
| @@ -7,6 +7,7 @@ package mocks | |||
| 7 | 7 | import ( | |
| 8 | 8 | "context" | |
| 9 | 9 | "database/sql" | |
| 10 | + | "encoding/json" | |
| 10 | 11 | "time" | |
| 11 | 12 | ||
| 12 | 13 | "github.com/bnema/dumber/internal/application/port" | |
| @@ -3395,13 +3396,13 @@ func (_c *MockEngine_UpdateSettings_Call) RunAndReturn(run func(ctx context.Cont | |||
| 3395 | 3396 | return _c | |
| 3396 | 3397 | } | |
| 3397 | 3398 | ||
| 3398 | - | // NewMockSchemeHandler creates a new instance of MockSchemeHandler. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. | |
| 3399 | + | // NewMockWebUIMessageHandler creates a new instance of MockWebUIMessageHandler. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. | |
| 3399 | 3400 | // The first argument is typically a *testing.T value. | |
| 3400 | - | func NewMockSchemeHandler(t interface { | |
| 3401 | + | func NewMockWebUIMessageHandler(t interface { | |
| 3401 | 3402 | mock.TestingT | |
| 3402 | 3403 | Cleanup(func()) | |
| 3403 | - | }) *MockSchemeHandler { | |
| 3404 | - | mock := &MockSchemeHandler{} | |
| 3404 | + | }) *MockWebUIMessageHandler { | |
| 3405 | + | mock := &MockWebUIMessageHandler{} | |
| 3405 | 3406 | mock.Mock.Test(t) | |
| 3406 | 3407 | ||
| 3407 | 3408 | t.Cleanup(func() { mock.AssertExpectations(t) }) | |
| @@ -3409,72 +3410,100 @@ func NewMockSchemeHandler(t interface { | |||
| 3409 | 3410 | return mock | |
| 3410 | 3411 | } | |
| 3411 | 3412 | ||
| 3412 | - | // MockSchemeHandler is an autogenerated mock type for the SchemeHandler type | |
| 3413 | - | type MockSchemeHandler struct { | |
| 3413 | + | // MockWebUIMessageHandler is an autogenerated mock type for the WebUIMessageHandler type | |
| 3414 | + | type MockWebUIMessageHandler struct { | |
| 3414 | 3415 | mock.Mock | |
| 3415 | 3416 | } | |
| 3416 | 3417 | ||
| 3417 | - | type MockSchemeHandler_Expecter struct { | |
| 3418 | + | type MockWebUIMessageHandler_Expecter struct { | |
| 3418 | 3419 | mock *mock.Mock | |
| 3419 | 3420 | } | |
| 3420 | 3421 | ||
| 3421 | - | func (_m *MockSchemeHandler) EXPECT() *MockSchemeHandler_Expecter { | |
| 3422 | - | return &MockSchemeHandler_Expecter{mock: &_m.Mock} | |
| 3422 | + | func (_m *MockWebUIMessageHandler) EXPECT() *MockWebUIMessageHandler_Expecter { | |
| 3423 | + | return &MockWebUIMessageHandler_Expecter{mock: &_m.Mock} | |
| 3423 | 3424 | } | |
| 3424 | 3425 | ||
| 3425 | - | // RegisterScheme provides a mock function for the type MockSchemeHandler | |
| 3426 | - | func (_mock *MockSchemeHandler) RegisterScheme(scheme string, handler func(uri string) ([]byte, string, error)) { | |
| 3427 | - | _mock.Called(scheme, handler) | |
| 3428 | - | return | |
| 3426 | + | // Handle provides a mock function for the type MockWebUIMessageHandler | |
| 3427 | + | func (_mock *MockWebUIMessageHandler) Handle(ctx context.Context, webviewID port.WebViewID, payload json.RawMessage) (any, error) { | |
| 3428 | + | ret := _mock.Called(ctx, webviewID, payload) | |
| 3429 | + | ||
| 3430 | + | if len(ret) == 0 { | |
| 3431 | + | panic("no return value specified for Handle") | |
| 3432 | + | } | |
| 3433 | + | ||
| 3434 | + | var r0 any | |
| 3435 | + | var r1 error | |
| 3436 | + | if returnFunc, ok := ret.Get(0).(func(context.Context, port.WebViewID, json.RawMessage) (any, error)); ok { | |
| 3437 | + | return returnFunc(ctx, webviewID, payload) | |
| 3438 | + | } | |
| 3439 | + | if returnFunc, ok := ret.Get(0).(func(context.Context, port.WebViewID, json.RawMessage) any); ok { | |
| 3440 | + | r0 = returnFunc(ctx, webviewID, payload) | |
| 3441 | + | } else { | |
| 3442 | + | if ret.Get(0) != nil { | |
| 3443 | + | r0 = ret.Get(0).(any) | |
| 3444 | + | } | |
| 3445 | + | } | |
| 3446 | + | if returnFunc, ok := ret.Get(1).(func(context.Context, port.WebViewID, json.RawMessage) error); ok { | |
| 3447 | + | r1 = returnFunc(ctx, webviewID, payload) | |
| 3448 | + | } else { | |
| 3449 | + | r1 = ret.Error(1) | |
| 3450 | + | } | |
| 3451 | + | return r0, r1 | |
| 3429 | 3452 | } | |
| 3430 | 3453 | ||
| 3431 | - | // MockSchemeHandler_RegisterScheme_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'RegisterScheme' | |
| 3432 | - | type MockSchemeHandler_RegisterScheme_Call struct { | |
| 3454 | + | // MockWebUIMessageHandler_Handle_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Handle' | |
| 3455 | + | type MockWebUIMessageHandler_Handle_Call struct { | |
| 3433 | 3456 | *mock.Call | |
| 3434 | 3457 | } | |
| 3435 | 3458 | ||
| 3436 | - | // RegisterScheme is a helper method to define mock.On call | |
| 3437 | - | // - scheme string | |
| 3438 | - | // - handler func(uri string) ([]byte, string, error) | |
| 3439 | - | func (_e *MockSchemeHandler_Expecter) RegisterScheme(scheme interface{}, handler interface{}) *MockSchemeHandler_RegisterScheme_Call { | |
| 3440 | - | return &MockSchemeHandler_RegisterScheme_Call{Call: _e.mock.On("RegisterScheme", scheme, handler)} | |
| 3459 | + | // Handle is a helper method to define mock.On call | |
| 3460 | + | // - ctx context.Context | |
| 3461 | + | // - webviewID port.WebViewID | |
| 3462 | + | // - payload json.RawMessage | |
| 3463 | + | func (_e *MockWebUIMessageHandler_Expecter) Handle(ctx interface{}, webviewID interface{}, payload interface{}) *MockWebUIMessageHandler_Handle_Call { | |
| 3464 | + | return &MockWebUIMessageHandler_Handle_Call{Call: _e.mock.On("Handle", ctx, webviewID, payload)} | |
| 3441 | 3465 | } | |
| 3442 | 3466 | ||
| 3443 | - | func (_c *MockSchemeHandler_RegisterScheme_Call) Run(run func(scheme string, handler func(uri string) ([]byte, string, error))) *MockSchemeHandler_RegisterScheme_Call { | |
| 3467 | + | func (_c *MockWebUIMessageHandler_Handle_Call) Run(run func(ctx context.Context, webviewID port.WebViewID, payload json.RawMessage)) *MockWebUIMessageHandler_Handle_Call { | |
| 3444 | 3468 | _c.Call.Run(func(args mock.Arguments) { | |
| 3445 | - | var arg0 string | |
| 3469 | + | var arg0 context.Context | |
| 3446 | 3470 | if args[0] != nil { | |
| 3447 | - | arg0 = args[0].(string) | |
| 3471 | + | arg0 = args[0].(context.Context) | |
| 3448 | 3472 | } | |
| 3449 | - | var arg1 func(uri string) ([]byte, string, error) | |
| 3473 | + | var arg1 port.WebViewID | |
| 3450 | 3474 | if args[1] != nil { | |
| 3451 | - | arg1 = args[1].(func(uri string) ([]byte, string, error)) | |
| 3475 | + | arg1 = args[1].(port.WebViewID) | |
| 3476 | + | } | |
| 3477 | + | var arg2 json.RawMessage | |
| 3478 | + | if args[2] != nil { | |
| 3479 | + | arg2 = args[2].(json.RawMessage) | |
| 3452 | 3480 | } | |
| 3453 | 3481 | run( | |
| 3454 | 3482 | arg0, | |
| 3455 | 3483 | arg1, | |
| 3484 | + | arg2, | |
| 3456 | 3485 | ) | |
| 3457 | 3486 | }) | |
| 3458 | 3487 | return _c | |
| 3459 | 3488 | } | |
| 3460 | 3489 | ||
| 3461 | - | func (_c *MockSchemeHandler_RegisterScheme_Call) Return() *MockSchemeHandler_RegisterScheme_Call { | |
| 3462 | - | _c.Call.Return() | |
| 3490 | + | func (_c *MockWebUIMessageHandler_Handle_Call) Return(v any, err error) *MockWebUIMessageHandler_Handle_Call { | |
| 3491 | + | _c.Call.Return(v, err) | |
| 3463 | 3492 | return _c | |
| 3464 | 3493 | } | |
| 3465 | 3494 | ||
| 3466 | - | func (_c *MockSchemeHandler_RegisterScheme_Call) RunAndReturn(run func(scheme string, handler func(uri string) ([]byte, string, error))) *MockSchemeHandler_RegisterScheme_Call { | |
| 3467 | - | _c.Run(run) | |
| 3495 | + | func (_c *MockWebUIMessageHandler_Handle_Call) RunAndReturn(run func(ctx context.Context, webviewID port.WebViewID, payload json.RawMessage) (any, error)) *MockWebUIMessageHandler_Handle_Call { | |
| 3496 | + | _c.Call.Return(run) | |
| 3468 | 3497 | return _c | |
| 3469 | 3498 | } | |
| 3470 | 3499 | ||
| 3471 | - | // NewMockMessageRouter creates a new instance of MockMessageRouter. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. | |
| 3500 | + | // NewMockWebUIHandlerRouter creates a new instance of MockWebUIHandlerRouter. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. | |
| 3472 | 3501 | // The first argument is typically a *testing.T value. | |
| 3473 | - | func NewMockMessageRouter(t interface { | |
| 3502 | + | func NewMockWebUIHandlerRouter(t interface { | |
| 3474 | 3503 | mock.TestingT | |
| 3475 | 3504 | Cleanup(func()) | |
| 3476 | - | }) *MockMessageRouter { | |
| 3477 | - | mock := &MockMessageRouter{} | |
| 3505 | + | }) *MockWebUIHandlerRouter { | |
| 3506 | + | mock := &MockWebUIHandlerRouter{} | |
| 3478 | 3507 | mock.Mock.Test(t) | |
| 3479 | 3508 | ||
| 3480 | 3509 | t.Cleanup(func() { mock.AssertExpectations(t) }) | |
| @@ -3482,103 +3511,205 @@ func NewMockMessageRouter(t interface { | |||
| 3482 | 3511 | return mock | |
| 3483 | 3512 | } | |
| 3484 | 3513 | ||
| 3485 | - | // MockMessageRouter is an autogenerated mock type for the MessageRouter type | |
| 3486 | - | type MockMessageRouter struct { | |
| 3514 | + | // MockWebUIHandlerRouter is an autogenerated mock type for the WebUIHandlerRouter type | |
| 3515 | + | type MockWebUIHandlerRouter struct { | |
| 3487 | 3516 | mock.Mock | |
| 3488 | 3517 | } | |
| 3489 | 3518 | ||
| 3490 | - | type MockMessageRouter_Expecter struct { | |
| 3519 | + | type MockWebUIHandlerRouter_Expecter struct { | |
| 3491 | 3520 | mock *mock.Mock | |
| 3492 | 3521 | } | |
| 3493 | 3522 | ||
| 3494 | - | func (_m *MockMessageRouter) EXPECT() *MockMessageRouter_Expecter { | |
| 3495 | - | return &MockMessageRouter_Expecter{mock: &_m.Mock} | |
| 3523 | + | func (_m *MockWebUIHandlerRouter) EXPECT() *MockWebUIHandlerRouter_Expecter { | |
| 3524 | + | return &MockWebUIHandlerRouter_Expecter{mock: &_m.Mock} | |
| 3496 | 3525 | } | |
| 3497 | 3526 | ||
| 3498 | - | // PostMessage provides a mock function for the type MockMessageRouter | |
| 3499 | - | func (_mock *MockMessageRouter) PostMessage(webviewID port.WebViewID, message string) error { | |
| 3500 | - | ret := _mock.Called(webviewID, message) | |
| 3527 | + | // RegisterHandler provides a mock function for the type MockWebUIHandlerRouter | |
| 3528 | + | func (_mock *MockWebUIHandlerRouter) RegisterHandler(msgType string, handler port.WebUIMessageHandler) error { | |
| 3529 | + | ret := _mock.Called(msgType, handler) | |
| 3501 | 3530 | ||
| 3502 | 3531 | if len(ret) == 0 { | |
| 3503 | - | panic("no return value specified for PostMessage") | |
| 3532 | + | panic("no return value specified for RegisterHandler") | |
| 3504 | 3533 | } | |
| 3505 | 3534 | ||
| 3506 | 3535 | var r0 error | |
| 3507 | - | if returnFunc, ok := ret.Get(0).(func(port.WebViewID, string) error); ok { | |
| 3508 | - | r0 = returnFunc(webviewID, message) | |
| 3536 | + | if returnFunc, ok := ret.Get(0).(func(string, port.WebUIMessageHandler) error); ok { | |
| 3537 | + | r0 = returnFunc(msgType, handler) | |
| 3509 | 3538 | } else { | |
| 3510 | 3539 | r0 = ret.Error(0) | |
| 3511 | 3540 | } | |
| 3512 | 3541 | return r0 | |
| 3513 | 3542 | } | |
| 3514 | 3543 | ||
| 3515 | - | // MockMessageRouter_PostMessage_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'PostMessage' | |
| 3516 | - | type MockMessageRouter_PostMessage_Call struct { | |
| 3544 | + | // MockWebUIHandlerRouter_RegisterHandler_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'RegisterHandler' | |
| 3545 | + | type MockWebUIHandlerRouter_RegisterHandler_Call struct { | |
| 3517 | 3546 | *mock.Call | |
| 3518 | 3547 | } | |
| 3519 | 3548 | ||
| 3520 | - | // PostMessage is a helper method to define mock.On call | |
| 3521 | - | // - webviewID port.WebViewID | |
| 3522 | - | // - message string | |
| 3523 | - | func (_e *MockMessageRouter_Expecter) PostMessage(webviewID interface{}, message interface{}) *MockMessageRouter_PostMessage_Call { | |
| 3524 | - | return &MockMessageRouter_PostMessage_Call{Call: _e.mock.On("PostMessage", webviewID, message)} | |
| 3549 | + | // RegisterHandler is a helper method to define mock.On call | |
| 3550 | + | // - msgType string | |
| 3551 | + | // - handler port.WebUIMessageHandler | |
| 3552 | + | func (_e *MockWebUIHandlerRouter_Expecter) RegisterHandler(msgType interface{}, handler interface{}) *MockWebUIHandlerRouter_RegisterHandler_Call { | |
| 3553 | + | return &MockWebUIHandlerRouter_RegisterHandler_Call{Call: _e.mock.On("RegisterHandler", msgType, handler)} | |
| 3525 | 3554 | } | |
| 3526 | 3555 | ||
| 3527 | - | func (_c *MockMessageRouter_PostMessage_Call) Run(run func(webviewID port.WebViewID, message string)) *MockMessageRouter_PostMessage_Call { | |
| 3556 | + | func (_c *MockWebUIHandlerRouter_RegisterHandler_Call) Run(run func(msgType string, handler port.WebUIMessageHandler)) *MockWebUIHandlerRouter_RegisterHandler_Call { | |
| 3528 | 3557 | _c.Call.Run(func(args mock.Arguments) { | |
| 3529 | - | var arg0 port.WebViewID | |
| 3558 | + | var arg0 string | |
| 3530 | 3559 | if args[0] != nil { | |
| 3531 | - | arg0 = args[0].(port.WebViewID) | |
| 3560 | + | arg0 = args[0].(string) | |
| 3561 | + | } | |
| 3562 | + | var arg1 port.WebUIMessageHandler | |
| 3563 | + | if args[1] != nil { | |
| 3564 | + | arg1 = args[1].(port.WebUIMessageHandler) | |
| 3565 | + | } | |
| 3566 | + | run( | |
| 3567 | + | arg0, | |
| 3568 | + | arg1, | |
| 3569 | + | ) | |
| 3570 | + | }) | |
| 3571 | + | return _c | |
| 3572 | + | } | |
| 3573 | + | ||
| 3574 | + | func (_c *MockWebUIHandlerRouter_RegisterHandler_Call) Return(err error) *MockWebUIHandlerRouter_RegisterHandler_Call { | |
| 3575 | + | _c.Call.Return(err) | |
| 3576 | + | return _c | |
| 3577 | + | } | |
| 3578 | + | ||
| 3579 | + | func (_c *MockWebUIHandlerRouter_RegisterHandler_Call) RunAndReturn(run func(msgType string, handler port.WebUIMessageHandler) error) *MockWebUIHandlerRouter_RegisterHandler_Call { | |
| 3580 | + | _c.Call.Return(run) | |
| 3581 | + | return _c | |
| 3582 | + | } | |
| 3583 | + | ||
| 3584 | + | // RegisterHandlerWithCallbacks provides a mock function for the type MockWebUIHandlerRouter | |
| 3585 | + | func (_mock *MockWebUIHandlerRouter) RegisterHandlerWithCallbacks(msgType string, callback string, errorCallback string, worldName string, handler port.WebUIMessageHandler) error { | |
| 3586 | + | ret := _mock.Called(msgType, callback, errorCallback, worldName, handler) | |
| 3587 | + | ||
| 3588 | + | if len(ret) == 0 { | |
| 3589 | + | panic("no return value specified for RegisterHandlerWithCallbacks") | |
| 3590 | + | } | |
| 3591 | + | ||
| 3592 | + | var r0 error | |
| 3593 | + | if returnFunc, ok := ret.Get(0).(func(string, string, string, string, port.WebUIMessageHandler) error); ok { | |
| 3594 | + | r0 = returnFunc(msgType, callback, errorCallback, worldName, handler) | |
| 3595 | + | } else { | |
| 3596 | + | r0 = ret.Error(0) | |
| 3597 | + | } | |
| 3598 | + | return r0 | |
| 3599 | + | } | |
| 3600 | + | ||
| 3601 | + | // MockWebUIHandlerRouter_RegisterHandlerWithCallbacks_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'RegisterHandlerWithCallbacks' | |
| 3602 | + | type MockWebUIHandlerRouter_RegisterHandlerWithCallbacks_Call struct { | |
| 3603 | + | *mock.Call | |
| 3604 | + | } | |
| 3605 | + | ||
| 3606 | + | // RegisterHandlerWithCallbacks is a helper method to define mock.On call | |
| 3607 | + | // - msgType string | |
| 3608 | + | // - callback string | |
| 3609 | + | // - errorCallback string | |
| 3610 | + | // - worldName string | |
| 3611 | + | // - handler port.WebUIMessageHandler | |
| 3612 | + | func (_e *MockWebUIHandlerRouter_Expecter) RegisterHandlerWithCallbacks(msgType interface{}, callback interface{}, errorCallback interface{}, worldName interface{}, handler interface{}) *MockWebUIHandlerRouter_RegisterHandlerWithCallbacks_Call { | |
| 3613 | + | return &MockWebUIHandlerRouter_RegisterHandlerWithCallbacks_Call{Call: _e.mock.On("RegisterHandlerWithCallbacks", msgType, callback, errorCallback, worldName, handler)} | |
| 3614 | + | } | |
| 3615 | + | ||
| 3616 | + | func (_c *MockWebUIHandlerRouter_RegisterHandlerWithCallbacks_Call) Run(run func(msgType string, callback string, errorCallback string, worldName string, handler port.WebUIMessageHandler)) *MockWebUIHandlerRouter_RegisterHandlerWithCallbacks_Call { | |
| 3617 | + | _c.Call.Run(func(args mock.Arguments) { | |
| 3618 | + | var arg0 string | |
| 3619 | + | if args[0] != nil { | |
| 3620 | + | arg0 = args[0].(string) | |
| 3532 | 3621 | } | |
| 3533 | 3622 | var arg1 string | |
| 3534 | 3623 | if args[1] != nil { | |
| 3535 | 3624 | arg1 = args[1].(string) | |
| 3536 | 3625 | } | |
| 3626 | + | var arg2 string | |
| 3627 | + | if args[2] != nil { | |
| 3628 | + | arg2 = args[2].(string) | |
| 3629 | + | } | |
| 3630 | + | var arg3 string | |
| 3631 | + | if args[3] != nil { | |
| 3632 | + | arg3 = args[3].(string) | |
| 3633 | + | } | |
| 3634 | + | var arg4 port.WebUIMessageHandler | |
| 3635 | + | if args[4] != nil { | |
| 3636 | + | arg4 = args[4].(port.WebUIMessageHandler) | |
| 3637 | + | } | |
| 3537 | 3638 | run( | |
| 3538 | 3639 | arg0, | |
| 3539 | 3640 | arg1, | |
| 3641 | + | arg2, | |
| 3642 | + | arg3, | |
| 3643 | + | arg4, | |
| 3540 | 3644 | ) | |
| 3541 | 3645 | }) | |
| 3542 | 3646 | return _c | |
| 3543 | 3647 | } | |
| 3544 | 3648 | ||
| 3545 | - | func (_c *MockMessageRouter_PostMessage_Call) Return(err error) *MockMessageRouter_PostMessage_Call { | |
| 3649 | + | func (_c *MockWebUIHandlerRouter_RegisterHandlerWithCallbacks_Call) Return(err error) *MockWebUIHandlerRouter_RegisterHandlerWithCallbacks_Call { | |
| 3546 | 3650 | _c.Call.Return(err) | |
| 3547 | 3651 | return _c | |
| 3548 | 3652 | } | |
| 3549 | 3653 | ||
| 3550 | - | func (_c *MockMessageRouter_PostMessage_Call) RunAndReturn(run func(webviewID port.WebViewID, message string) error) *MockMessageRouter_PostMessage_Call { | |
| 3654 | + | func (_c *MockWebUIHandlerRouter_RegisterHandlerWithCallbacks_Call) RunAndReturn(run func(msgType string, callback string, errorCallback string, worldName string, handler port.WebUIMessageHandler) error) *MockWebUIHandlerRouter_RegisterHandlerWithCallbacks_Call { | |
| 3551 | 3655 | _c.Call.Return(run) | |
| 3552 | 3656 | return _c | |
| 3553 | 3657 | } | |
| 3554 | 3658 | ||
| 3555 | - | // RegisterHandler provides a mock function for the type MockMessageRouter | |
| 3556 | - | func (_mock *MockMessageRouter) RegisterHandler(name string, handler func(message string) (string, error)) { | |
| 3557 | - | _mock.Called(name, handler) | |
| 3659 | + | // NewMockSchemeHandler creates a new instance of MockSchemeHandler. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. | |
| 3660 | + | // The first argument is typically a *testing.T value. | |
| 3661 | + | func NewMockSchemeHandler(t interface { | |
| 3662 | + | mock.TestingT | |
| 3663 | + | Cleanup(func()) | |
| 3664 | + | }) *MockSchemeHandler { | |
| 3665 | + | mock := &MockSchemeHandler{} | |
| 3666 | + | mock.Mock.Test(t) | |
| 3667 | + | ||
| 3668 | + | t.Cleanup(func() { mock.AssertExpectations(t) }) | |
| 3669 | + | ||
| 3670 | + | return mock | |
| 3671 | + | } | |
| 3672 | + | ||
| 3673 | + | // MockSchemeHandler is an autogenerated mock type for the SchemeHandler type | |
| 3674 | + | type MockSchemeHandler struct { | |
| 3675 | + | mock.Mock | |
| 3676 | + | } | |
| 3677 | + | ||
| 3678 | + | type MockSchemeHandler_Expecter struct { | |
| 3679 | + | mock *mock.Mock | |
| 3680 | + | } | |
| 3681 | + | ||
| 3682 | + | func (_m *MockSchemeHandler) EXPECT() *MockSchemeHandler_Expecter { | |
| 3683 | + | return &MockSchemeHandler_Expecter{mock: &_m.Mock} | |
| 3684 | + | } | |
| 3685 | + | ||
| 3686 | + | // RegisterScheme provides a mock function for the type MockSchemeHandler | |
| 3687 | + | func (_mock *MockSchemeHandler) RegisterScheme(scheme string, handler func(uri string) ([]byte, string, error)) { | |
| 3688 | + | _mock.Called(scheme, handler) | |
| 3558 | 3689 | return | |
| 3559 | 3690 | } | |
| 3560 | 3691 | ||
| 3561 | - | // MockMessageRouter_RegisterHandler_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'RegisterHandler' | |
| 3562 | - | type MockMessageRouter_RegisterHandler_Call struct { | |
| 3692 | + | // MockSchemeHandler_RegisterScheme_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'RegisterScheme' | |
| 3693 | + | type MockSchemeHandler_RegisterScheme_Call struct { | |
| 3563 | 3694 | *mock.Call | |
| 3564 | 3695 | } | |
| 3565 | 3696 | ||
| 3566 | - | // RegisterHandler is a helper method to define mock.On call | |
| 3567 | - | // - name string | |
| 3568 | - | // - handler func(message string) (string, error) | |
| 3569 | - | func (_e *MockMessageRouter_Expecter) RegisterHandler(name interface{}, handler interface{}) *MockMessageRouter_RegisterHandler_Call { | |
| 3570 | - | return &MockMessageRouter_RegisterHandler_Call{Call: _e.mock.On("RegisterHandler", name, handler)} | |
| 3697 | + | // RegisterScheme is a helper method to define mock.On call | |
| 3698 | + | // - scheme string | |
| 3699 | + | // - handler func(uri string) ([]byte, string, error) | |
| 3700 | + | func (_e *MockSchemeHandler_Expecter) RegisterScheme(scheme interface{}, handler interface{}) *MockSchemeHandler_RegisterScheme_Call { | |
| 3701 | + | return &MockSchemeHandler_RegisterScheme_Call{Call: _e.mock.On("RegisterScheme", scheme, handler)} | |
| 3571 | 3702 | } | |
| 3572 | 3703 | ||
| 3573 | - | func (_c *MockMessageRouter_RegisterHandler_Call) Run(run func(name string, handler func(message string) (string, error))) *MockMessageRouter_RegisterHandler_Call { | |
| 3704 | + | func (_c *MockSchemeHandler_RegisterScheme_Call) Run(run func(scheme string, handler func(uri string) ([]byte, string, error))) *MockSchemeHandler_RegisterScheme_Call { | |
| 3574 | 3705 | _c.Call.Run(func(args mock.Arguments) { | |
| 3575 | 3706 | var arg0 string | |
| 3576 | 3707 | if args[0] != nil { | |
| 3577 | 3708 | arg0 = args[0].(string) | |
| 3578 | 3709 | } | |
| 3579 | - | var arg1 func(message string) (string, error) | |
| 3710 | + | var arg1 func(uri string) ([]byte, string, error) | |
| 3580 | 3711 | if args[1] != nil { | |
| 3581 | - | arg1 = args[1].(func(message string) (string, error)) | |
| 3712 | + | arg1 = args[1].(func(uri string) ([]byte, string, error)) | |
| 3582 | 3713 | } | |
| 3583 | 3714 | run( | |
| 3584 | 3715 | arg0, | |
| @@ -3588,12 +3719,12 @@ func (_c *MockMessageRouter_RegisterHandler_Call) Run(run func(name string, hand | |||
| 3588 | 3719 | return _c | |
| 3589 | 3720 | } | |
| 3590 | 3721 | ||
| 3591 | - | func (_c *MockMessageRouter_RegisterHandler_Call) Return() *MockMessageRouter_RegisterHandler_Call { | |
| 3722 | + | func (_c *MockSchemeHandler_RegisterScheme_Call) Return() *MockSchemeHandler_RegisterScheme_Call { | |
| 3592 | 3723 | _c.Call.Return() | |
| 3593 | 3724 | return _c | |
| 3594 | 3725 | } | |
| 3595 | 3726 | ||
| 3596 | - | func (_c *MockMessageRouter_RegisterHandler_Call) RunAndReturn(run func(name string, handler func(message string) (string, error))) *MockMessageRouter_RegisterHandler_Call { | |
| 3727 | + | func (_c *MockSchemeHandler_RegisterScheme_Call) RunAndReturn(run func(scheme string, handler func(uri string) ([]byte, string, error))) *MockSchemeHandler_RegisterScheme_Call { | |
| 3597 | 3728 | _c.Run(run) | |
| 3598 | 3729 | return _c | |
| 3599 | 3730 | } | |
| @@ -7,6 +7,7 @@ package mocks | |||||
| 7 | import ( | 7 | import ( | ||
| 8 | "context" | 8 | "context" | ||
| 9 | "database/sql" | 9 | "database/sql" | ||
| 10 | + | "encoding/json" | |||
| 10 | "time" | 11 | "time" | ||
| 11 | 12 | ||||
| 12 | "github.com/bnema/dumber/internal/application/port" | 13 | "github.com/bnema/dumber/internal/application/port" | ||
| @@ -3395,13 +3396,13 @@ func (_c *MockEngine_UpdateSettings_Call) RunAndReturn(run func(ctx context.Cont | |||||
| 3395 | return _c | 3396 | return _c | ||
| 3396 | } | 3397 | } | ||
| 3397 | 3398 | ||||
| 3398 | - | // NewMockSchemeHandler creates a new instance of MockSchemeHandler. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. | 3399 | + | // NewMockWebUIMessageHandler creates a new instance of MockWebUIMessageHandler. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. |
| 3399 | // The first argument is typically a *testing.T value. | 3400 | // The first argument is typically a *testing.T value. | ||
| 3400 | - | func NewMockSchemeHandler(t interface { | 3401 | + | func NewMockWebUIMessageHandler(t interface { |
| 3401 | mock.TestingT | 3402 | mock.TestingT | ||
| 3402 | Cleanup(func()) | 3403 | Cleanup(func()) | ||
| 3403 | - | }) *MockSchemeHandler { | 3404 | + | }) *MockWebUIMessageHandler { |
| 3404 | - | mock := &MockSchemeHandler{} | 3405 | + | mock := &MockWebUIMessageHandler{} |
| 3405 | mock.Mock.Test(t) | 3406 | mock.Mock.Test(t) | ||
| 3406 | 3407 | ||||
| 3407 | t.Cleanup(func() { mock.AssertExpectations(t) }) | 3408 | t.Cleanup(func() { mock.AssertExpectations(t) }) | ||
| @@ -3409,72 +3410,100 @@ func NewMockSchemeHandler(t interface { | |||||
| 3409 | return mock | 3410 | return mock | ||
| 3410 | } | 3411 | } | ||
| 3411 | 3412 | ||||
| 3412 | - | // MockSchemeHandler is an autogenerated mock type for the SchemeHandler type | 3413 | + | // MockWebUIMessageHandler is an autogenerated mock type for the WebUIMessageHandler type |
| 3413 | - | type MockSchemeHandler struct { | 3414 | + | type MockWebUIMessageHandler struct { |
| 3414 | mock.Mock | 3415 | mock.Mock | ||
| 3415 | } | 3416 | } | ||
| 3416 | 3417 | ||||
| 3417 | - | type MockSchemeHandler_Expecter struct { | 3418 | + | type MockWebUIMessageHandler_Expecter struct { |
| 3418 | mock *mock.Mock | 3419 | mock *mock.Mock | ||
| 3419 | } | 3420 | } | ||
| 3420 | 3421 | ||||
| 3421 | - | func (_m *MockSchemeHandler) EXPECT() *MockSchemeHandler_Expecter { | 3422 | + | func (_m *MockWebUIMessageHandler) EXPECT() *MockWebUIMessageHandler_Expecter { |
| 3422 | - | return &MockSchemeHandler_Expecter{mock: &_m.Mock} | 3423 | + | return &MockWebUIMessageHandler_Expecter{mock: &_m.Mock} |
| 3423 | } | 3424 | } | ||
| 3424 | 3425 | ||||
| 3425 | - | // RegisterScheme provides a mock function for the type MockSchemeHandler | 3426 | + | // Handle provides a mock function for the type MockWebUIMessageHandler |
| 3426 | - | func (_mock *MockSchemeHandler) RegisterScheme(scheme string, handler func(uri string) ([]byte, string, error)) { | 3427 | + | func (_mock *MockWebUIMessageHandler) Handle(ctx context.Context, webviewID port.WebViewID, payload json.RawMessage) (any, error) { |
| 3427 | - | _mock.Called(scheme, handler) | 3428 | + | ret := _mock.Called(ctx, webviewID, payload) |
| 3428 | - | return | 3429 | + | |
| 3430 | + | if len(ret) == 0 { | |||
| 3431 | + | panic("no return value specified for Handle") | |||
| 3432 | + | } | |||
| 3433 | + | ||||
| 3434 | + | var r0 any | |||
| 3435 | + | var r1 error | |||
| 3436 | + | if returnFunc, ok := ret.Get(0).(func(context.Context, port.WebViewID, json.RawMessage) (any, error)); ok { | |||
| 3437 | + | return returnFunc(ctx, webviewID, payload) | |||
| 3438 | + | } | |||
| 3439 | + | if returnFunc, ok := ret.Get(0).(func(context.Context, port.WebViewID, json.RawMessage) any); ok { | |||
| 3440 | + | r0 = returnFunc(ctx, webviewID, payload) | |||
| 3441 | + | } else { | |||
| 3442 | + | if ret.Get(0) != nil { | |||
| 3443 | + | r0 = ret.Get(0).(any) | |||
| 3444 | + | } | |||
| 3445 | + | } | |||
| 3446 | + | if returnFunc, ok := ret.Get(1).(func(context.Context, port.WebViewID, json.RawMessage) error); ok { | |||
| 3447 | + | r1 = returnFunc(ctx, webviewID, payload) | |||
| 3448 | + | } else { | |||
| 3449 | + | r1 = ret.Error(1) | |||
| 3450 | + | } | |||
| 3451 | + | return r0, r1 | |||
| 3429 | } | 3452 | } | ||
| 3430 | 3453 | ||||
| 3431 | - | // MockSchemeHandler_RegisterScheme_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'RegisterScheme' | 3454 | + | // MockWebUIMessageHandler_Handle_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Handle' |
| 3432 | - | type MockSchemeHandler_RegisterScheme_Call struct { | 3455 | + | type MockWebUIMessageHandler_Handle_Call struct { |
| 3433 | *mock.Call | 3456 | *mock.Call | ||
| 3434 | } | 3457 | } | ||
| 3435 | 3458 | ||||
| 3436 | - | // RegisterScheme is a helper method to define mock.On call | 3459 | + | // Handle is a helper method to define mock.On call |
| 3437 | - | // - scheme string | 3460 | + | // - ctx context.Context |
| 3438 | - | // - handler func(uri string) ([]byte, string, error) | 3461 | + | // - webviewID port.WebViewID |
| 3439 | - | func (_e *MockSchemeHandler_Expecter) RegisterScheme(scheme interface{}, handler interface{}) *MockSchemeHandler_RegisterScheme_Call { | 3462 | + | // - payload json.RawMessage |
| 3440 | - | return &MockSchemeHandler_RegisterScheme_Call{Call: _e.mock.On("RegisterScheme", scheme, handler)} | 3463 | + | func (_e *MockWebUIMessageHandler_Expecter) Handle(ctx interface{}, webviewID interface{}, payload interface{}) *MockWebUIMessageHandler_Handle_Call { |
| 3464 | + | return &MockWebUIMessageHandler_Handle_Call{Call: _e.mock.On("Handle", ctx, webviewID, payload)} | |||
| 3441 | } | 3465 | } | ||
| 3442 | 3466 | ||||
| 3443 | - | func (_c *MockSchemeHandler_RegisterScheme_Call) Run(run func(scheme string, handler func(uri string) ([]byte, string, error))) *MockSchemeHandler_RegisterScheme_Call { | 3467 | + | func (_c *MockWebUIMessageHandler_Handle_Call) Run(run func(ctx context.Context, webviewID port.WebViewID, payload json.RawMessage)) *MockWebUIMessageHandler_Handle_Call { |
| 3444 | _c.Call.Run(func(args mock.Arguments) { | 3468 | _c.Call.Run(func(args mock.Arguments) { | ||
| 3445 | - | var arg0 string | 3469 | + | var arg0 context.Context |
| 3446 | if args[0] != nil { | 3470 | if args[0] != nil { | ||
| 3447 | - | arg0 = args[0].(string) | 3471 | + | arg0 = args[0].(context.Context) |
| 3448 | } | 3472 | } | ||
| 3449 | - | var arg1 func(uri string) ([]byte, string, error) | 3473 | + | var arg1 port.WebViewID |
| 3450 | if args[1] != nil { | 3474 | if args[1] != nil { | ||
| 3451 | - | arg1 = args[1].(func(uri string) ([]byte, string, error)) | 3475 | + | arg1 = args[1].(port.WebViewID) |
| 3476 | + | } | |||
| 3477 | + | var arg2 json.RawMessage | |||
| 3478 | + | if args[2] != nil { | |||
| 3479 | + | arg2 = args[2].(json.RawMessage) | |||
| 3452 | } | 3480 | } | ||
| 3453 | run( | 3481 | run( | ||
| 3454 | arg0, | 3482 | arg0, | ||
| 3455 | arg1, | 3483 | arg1, | ||
| 3484 | + | arg2, | |||
| 3456 | ) | 3485 | ) | ||
| 3457 | }) | 3486 | }) | ||
| 3458 | return _c | 3487 | return _c | ||
| 3459 | } | 3488 | } | ||
| 3460 | 3489 | ||||
| 3461 | - | func (_c *MockSchemeHandler_RegisterScheme_Call) Return() *MockSchemeHandler_RegisterScheme_Call { | 3490 | + | func (_c *MockWebUIMessageHandler_Handle_Call) Return(v any, err error) *MockWebUIMessageHandler_Handle_Call { |
| 3462 | - | _c.Call.Return() | 3491 | + | _c.Call.Return(v, err) |
| 3463 | return _c | 3492 | return _c | ||
| 3464 | } | 3493 | } | ||
| 3465 | 3494 | ||||
| 3466 | - | func (_c *MockSchemeHandler_RegisterScheme_Call) RunAndReturn(run func(scheme string, handler func(uri string) ([]byte, string, error))) *MockSchemeHandler_RegisterScheme_Call { | 3495 | + | func (_c *MockWebUIMessageHandler_Handle_Call) RunAndReturn(run func(ctx context.Context, webviewID port.WebViewID, payload json.RawMessage) (any, error)) *MockWebUIMessageHandler_Handle_Call { |
| 3467 | - | _c.Run(run) | 3496 | + | _c.Call.Return(run) |
| 3468 | return _c | 3497 | return _c | ||
| 3469 | } | 3498 | } | ||
| 3470 | 3499 | ||||
| 3471 | - | // NewMockMessageRouter creates a new instance of MockMessageRouter. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. | 3500 | + | // NewMockWebUIHandlerRouter creates a new instance of MockWebUIHandlerRouter. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. |
| 3472 | // The first argument is typically a *testing.T value. | 3501 | // The first argument is typically a *testing.T value. | ||
| 3473 | - | func NewMockMessageRouter(t interface { | 3502 | + | func NewMockWebUIHandlerRouter(t interface { |
| 3474 | mock.TestingT | 3503 | mock.TestingT | ||
| 3475 | Cleanup(func()) | 3504 | Cleanup(func()) | ||
| 3476 | - | }) *MockMessageRouter { | 3505 | + | }) *MockWebUIHandlerRouter { |
| 3477 | - | mock := &MockMessageRouter{} | 3506 | + | mock := &MockWebUIHandlerRouter{} |
| 3478 | mock.Mock.Test(t) | 3507 | mock.Mock.Test(t) | ||
| 3479 | 3508 | ||||
| 3480 | t.Cleanup(func() { mock.AssertExpectations(t) }) | 3509 | t.Cleanup(func() { mock.AssertExpectations(t) }) | ||
| @@ -3482,103 +3511,205 @@ func NewMockMessageRouter(t interface { | |||||
| 3482 | return mock | 3511 | return mock | ||
| 3483 | } | 3512 | } | ||
| 3484 | 3513 | ||||
| 3485 | - | // MockMessageRouter is an autogenerated mock type for the MessageRouter type | 3514 | + | // MockWebUIHandlerRouter is an autogenerated mock type for the WebUIHandlerRouter type |
| 3486 | - | type MockMessageRouter struct { | 3515 | + | type MockWebUIHandlerRouter struct { |
| 3487 | mock.Mock | 3516 | mock.Mock | ||
| 3488 | } | 3517 | } | ||
| 3489 | 3518 | ||||
| 3490 | - | type MockMessageRouter_Expecter struct { | 3519 | + | type MockWebUIHandlerRouter_Expecter struct { |
| 3491 | mock *mock.Mock | 3520 | mock *mock.Mock | ||
| 3492 | } | 3521 | } | ||
| 3493 | 3522 | ||||
| 3494 | - | func (_m *MockMessageRouter) EXPECT() *MockMessageRouter_Expecter { | 3523 | + | func (_m *MockWebUIHandlerRouter) EXPECT() *MockWebUIHandlerRouter_Expecter { |
| 3495 | - | return &MockMessageRouter_Expecter{mock: &_m.Mock} | 3524 | + | return &MockWebUIHandlerRouter_Expecter{mock: &_m.Mock} |
| 3496 | } | 3525 | } | ||
| 3497 | 3526 | ||||
| 3498 | - | // PostMessage provides a mock function for the type MockMessageRouter | 3527 | + | // RegisterHandler provides a mock function for the type MockWebUIHandlerRouter |
| 3499 | - | func (_mock *MockMessageRouter) PostMessage(webviewID port.WebViewID, message string) error { | 3528 | + | func (_mock *MockWebUIHandlerRouter) RegisterHandler(msgType string, handler port.WebUIMessageHandler) error { |
| 3500 | - | ret := _mock.Called(webviewID, message) | 3529 | + | ret := _mock.Called(msgType, handler) |
| 3501 | 3530 | ||||
| 3502 | if len(ret) == 0 { | 3531 | if len(ret) == 0 { | ||
| 3503 | - | panic("no return value specified for PostMessage") | 3532 | + | panic("no return value specified for RegisterHandler") |
| 3504 | } | 3533 | } | ||
| 3505 | 3534 | ||||
| 3506 | var r0 error | 3535 | var r0 error | ||
| 3507 | - | if returnFunc, ok := ret.Get(0).(func(port.WebViewID, string) error); ok { | 3536 | + | if returnFunc, ok := ret.Get(0).(func(string, port.WebUIMessageHandler) error); ok { |
| 3508 | - | r0 = returnFunc(webviewID, message) | 3537 | + | r0 = returnFunc(msgType, handler) |
| 3509 | } else { | 3538 | } else { | ||
| 3510 | r0 = ret.Error(0) | 3539 | r0 = ret.Error(0) | ||
| 3511 | } | 3540 | } | ||
| 3512 | return r0 | 3541 | return r0 | ||
| 3513 | } | 3542 | } | ||
| 3514 | 3543 | ||||
| 3515 | - | // MockMessageRouter_PostMessage_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'PostMessage' | 3544 | + | // MockWebUIHandlerRouter_RegisterHandler_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'RegisterHandler' |
| 3516 | - | type MockMessageRouter_PostMessage_Call struct { | 3545 | + | type MockWebUIHandlerRouter_RegisterHandler_Call struct { |
| 3517 | *mock.Call | 3546 | *mock.Call | ||
| 3518 | } | 3547 | } | ||
| 3519 | 3548 | ||||
| 3520 | - | // PostMessage is a helper method to define mock.On call | 3549 | + | // RegisterHandler is a helper method to define mock.On call |
| 3521 | - | // - webviewID port.WebViewID | 3550 | + | // - msgType string |
| 3522 | - | // - message string | 3551 | + | // - handler port.WebUIMessageHandler |
| 3523 | - | func (_e *MockMessageRouter_Expecter) PostMessage(webviewID interface{}, message interface{}) *MockMessageRouter_PostMessage_Call { | 3552 | + | func (_e *MockWebUIHandlerRouter_Expecter) RegisterHandler(msgType interface{}, handler interface{}) *MockWebUIHandlerRouter_RegisterHandler_Call { |
| 3524 | - | return &MockMessageRouter_PostMessage_Call{Call: _e.mock.On("PostMessage", webviewID, message)} | 3553 | + | return &MockWebUIHandlerRouter_RegisterHandler_Call{Call: _e.mock.On("RegisterHandler", msgType, handler)} |
| 3525 | } | 3554 | } | ||
| 3526 | 3555 | ||||
| 3527 | - | func (_c *MockMessageRouter_PostMessage_Call) Run(run func(webviewID port.WebViewID, message string)) *MockMessageRouter_PostMessage_Call { | 3556 | + | func (_c *MockWebUIHandlerRouter_RegisterHandler_Call) Run(run func(msgType string, handler port.WebUIMessageHandler)) *MockWebUIHandlerRouter_RegisterHandler_Call { |
| 3528 | _c.Call.Run(func(args mock.Arguments) { | 3557 | _c.Call.Run(func(args mock.Arguments) { | ||
| 3529 | - | var arg0 port.WebViewID | 3558 | + | var arg0 string |
| 3530 | if args[0] != nil { | 3559 | if args[0] != nil { | ||
| 3531 | - | arg0 = args[0].(port.WebViewID) | 3560 | + | arg0 = args[0].(string) |
| 3561 | + | } | |||
| 3562 | + | var arg1 port.WebUIMessageHandler | |||
| 3563 | + | if args[1] != nil { | |||
| 3564 | + | arg1 = args[1].(port.WebUIMessageHandler) | |||
| 3565 | + | } | |||
| 3566 | + | run( | |||
| 3567 | + | arg0, | |||
| 3568 | + | arg1, | |||
| 3569 | + | ) | |||
| 3570 | + | }) | |||
| 3571 | + | return _c | |||
| 3572 | + | } | |||
| 3573 | + | ||||
| 3574 | + | func (_c *MockWebUIHandlerRouter_RegisterHandler_Call) Return(err error) *MockWebUIHandlerRouter_RegisterHandler_Call { | |||
| 3575 | + | _c.Call.Return(err) | |||
| 3576 | + | return _c | |||
| 3577 | + | } | |||
| 3578 | + | ||||
| 3579 | + | func (_c *MockWebUIHandlerRouter_RegisterHandler_Call) RunAndReturn(run func(msgType string, handler port.WebUIMessageHandler) error) *MockWebUIHandlerRouter_RegisterHandler_Call { | |||
| 3580 | + | _c.Call.Return(run) | |||
| 3581 | + | return _c | |||
| 3582 | + | } | |||
| 3583 | + | ||||
| 3584 | + | // RegisterHandlerWithCallbacks provides a mock function for the type MockWebUIHandlerRouter | |||
| 3585 | + | func (_mock *MockWebUIHandlerRouter) RegisterHandlerWithCallbacks(msgType string, callback string, errorCallback string, worldName string, handler port.WebUIMessageHandler) error { | |||
| 3586 | + | ret := _mock.Called(msgType, callback, errorCallback, worldName, handler) | |||
| 3587 | + | ||||
| 3588 | + | if len(ret) == 0 { | |||
| 3589 | + | panic("no return value specified for RegisterHandlerWithCallbacks") | |||
| 3590 | + | } | |||
| 3591 | + | ||||
| 3592 | + | var r0 error | |||
| 3593 | + | if returnFunc, ok := ret.Get(0).(func(string, string, string, string, port.WebUIMessageHandler) error); ok { | |||
| 3594 | + | r0 = returnFunc(msgType, callback, errorCallback, worldName, handler) | |||
| 3595 | + | } else { | |||
| 3596 | + | r0 = ret.Error(0) | |||
| 3597 | + | } | |||
| 3598 | + | return r0 | |||
| 3599 | + | } | |||
| 3600 | + | ||||
| 3601 | + | // MockWebUIHandlerRouter_RegisterHandlerWithCallbacks_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'RegisterHandlerWithCallbacks' | |||
| 3602 | + | type MockWebUIHandlerRouter_RegisterHandlerWithCallbacks_Call struct { | |||
| 3603 | + | *mock.Call | |||
| 3604 | + | } | |||
| 3605 | + | ||||
| 3606 | + | // RegisterHandlerWithCallbacks is a helper method to define mock.On call | |||
| 3607 | + | // - msgType string | |||
| 3608 | + | // - callback string | |||
| 3609 | + | // - errorCallback string | |||
| 3610 | + | // - worldName string | |||
| 3611 | + | // - handler port.WebUIMessageHandler | |||
| 3612 | + | func (_e *MockWebUIHandlerRouter_Expecter) RegisterHandlerWithCallbacks(msgType interface{}, callback interface{}, errorCallback interface{}, worldName interface{}, handler interface{}) *MockWebUIHandlerRouter_RegisterHandlerWithCallbacks_Call { | |||
| 3613 | + | return &MockWebUIHandlerRouter_RegisterHandlerWithCallbacks_Call{Call: _e.mock.On("RegisterHandlerWithCallbacks", msgType, callback, errorCallback, worldName, handler)} | |||
| 3614 | + | } | |||
| 3615 | + | ||||
| 3616 | + | func (_c *MockWebUIHandlerRouter_RegisterHandlerWithCallbacks_Call) Run(run func(msgType string, callback string, errorCallback string, worldName string, handler port.WebUIMessageHandler)) *MockWebUIHandlerRouter_RegisterHandlerWithCallbacks_Call { | |||
| 3617 | + | _c.Call.Run(func(args mock.Arguments) { | |||
| 3618 | + | var arg0 string | |||
| 3619 | + | if args[0] != nil { | |||
| 3620 | + | arg0 = args[0].(string) | |||
| 3532 | } | 3621 | } | ||
| 3533 | var arg1 string | 3622 | var arg1 string | ||
| 3534 | if args[1] != nil { | 3623 | if args[1] != nil { | ||
| 3535 | arg1 = args[1].(string) | 3624 | arg1 = args[1].(string) | ||
| 3536 | } | 3625 | } | ||
| 3626 | + | var arg2 string | |||
| 3627 | + | if args[2] != nil { | |||
| 3628 | + | arg2 = args[2].(string) | |||
| 3629 | + | } | |||
| 3630 | + | var arg3 string | |||
| 3631 | + | if args[3] != nil { | |||
| 3632 | + | arg3 = args[3].(string) | |||
| 3633 | + | } | |||
| 3634 | + | var arg4 port.WebUIMessageHandler | |||
| 3635 | + | if args[4] != nil { | |||
| 3636 | + | arg4 = args[4].(port.WebUIMessageHandler) | |||
| 3637 | + | } | |||
| 3537 | run( | 3638 | run( | ||
| 3538 | arg0, | 3639 | arg0, | ||
| 3539 | arg1, | 3640 | arg1, | ||
| 3641 | + | arg2, | |||
| 3642 | + | arg3, | |||
| 3643 | + | arg4, | |||
| 3540 | ) | 3644 | ) | ||
| 3541 | }) | 3645 | }) | ||
| 3542 | return _c | 3646 | return _c | ||
| 3543 | } | 3647 | } | ||
| 3544 | 3648 | ||||
| 3545 | - | func (_c *MockMessageRouter_PostMessage_Call) Return(err error) *MockMessageRouter_PostMessage_Call { | 3649 | + | func (_c *MockWebUIHandlerRouter_RegisterHandlerWithCallbacks_Call) Return(err error) *MockWebUIHandlerRouter_RegisterHandlerWithCallbacks_Call { |
| 3546 | _c.Call.Return(err) | 3650 | _c.Call.Return(err) | ||
| 3547 | return _c | 3651 | return _c | ||
| 3548 | } | 3652 | } | ||
| 3549 | 3653 | ||||
| 3550 | - | func (_c *MockMessageRouter_PostMessage_Call) RunAndReturn(run func(webviewID port.WebViewID, message string) error) *MockMessageRouter_PostMessage_Call { | 3654 | + | func (_c *MockWebUIHandlerRouter_RegisterHandlerWithCallbacks_Call) RunAndReturn(run func(msgType string, callback string, errorCallback string, worldName string, handler port.WebUIMessageHandler) error) *MockWebUIHandlerRouter_RegisterHandlerWithCallbacks_Call { |
| 3551 | _c.Call.Return(run) | 3655 | _c.Call.Return(run) | ||
| 3552 | return _c | 3656 | return _c | ||
| 3553 | } | 3657 | } | ||
| 3554 | 3658 | ||||
| 3555 | - | // RegisterHandler provides a mock function for the type MockMessageRouter | 3659 | + | // NewMockSchemeHandler creates a new instance of MockSchemeHandler. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. |
| 3556 | - | func (_mock *MockMessageRouter) RegisterHandler(name string, handler func(message string) (string, error)) { | 3660 | + | // The first argument is typically a *testing.T value. |
| 3557 | - | _mock.Called(name, handler) | 3661 | + | func NewMockSchemeHandler(t interface { |
| 3662 | + | mock.TestingT | |||
| 3663 | + | Cleanup(func()) | |||
| 3664 | + | }) *MockSchemeHandler { | |||
| 3665 | + | mock := &MockSchemeHandler{} | |||
| 3666 | + | mock.Mock.Test(t) | |||
| 3667 | + | ||||
| 3668 | + | t.Cleanup(func() { mock.AssertExpectations(t) }) | |||
| 3669 | + | ||||
| 3670 | + | return mock | |||
| 3671 | + | } | |||
| 3672 | + | ||||
| 3673 | + | // MockSchemeHandler is an autogenerated mock type for the SchemeHandler type | |||
| 3674 | + | type MockSchemeHandler struct { | |||
| 3675 | + | mock.Mock | |||
| 3676 | + | } | |||
| 3677 | + | ||||
| 3678 | + | type MockSchemeHandler_Expecter struct { | |||
| 3679 | + | mock *mock.Mock | |||
| 3680 | + | } | |||
| 3681 | + | ||||
| 3682 | + | func (_m *MockSchemeHandler) EXPECT() *MockSchemeHandler_Expecter { | |||
| 3683 | + | return &MockSchemeHandler_Expecter{mock: &_m.Mock} | |||
| 3684 | + | } | |||
| 3685 | + | ||||
| 3686 | + | // RegisterScheme provides a mock function for the type MockSchemeHandler | |||
| 3687 | + | func (_mock *MockSchemeHandler) RegisterScheme(scheme string, handler func(uri string) ([]byte, string, error)) { | |||
| 3688 | + | _mock.Called(scheme, handler) | |||
| 3558 | return | 3689 | return | ||
| 3559 | } | 3690 | } | ||
| 3560 | 3691 | ||||
| 3561 | - | // MockMessageRouter_RegisterHandler_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'RegisterHandler' | 3692 | + | // MockSchemeHandler_RegisterScheme_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'RegisterScheme' |
| 3562 | - | type MockMessageRouter_RegisterHandler_Call struct { | 3693 | + | type MockSchemeHandler_RegisterScheme_Call struct { |
| 3563 | *mock.Call | 3694 | *mock.Call | ||
| 3564 | } | 3695 | } | ||
| 3565 | 3696 | ||||
| 3566 | - | // RegisterHandler is a helper method to define mock.On call | 3697 | + | // RegisterScheme is a helper method to define mock.On call |
| 3567 | - | // - name string | 3698 | + | // - scheme string |
| 3568 | - | // - handler func(message string) (string, error) | 3699 | + | // - handler func(uri string) ([]byte, string, error) |
| 3569 | - | func (_e *MockMessageRouter_Expecter) RegisterHandler(name interface{}, handler interface{}) *MockMessageRouter_RegisterHandler_Call { | 3700 | + | func (_e *MockSchemeHandler_Expecter) RegisterScheme(scheme interface{}, handler interface{}) *MockSchemeHandler_RegisterScheme_Call { |
| 3570 | - | return &MockMessageRouter_RegisterHandler_Call{Call: _e.mock.On("RegisterHandler", name, handler)} | 3701 | + | return &MockSchemeHandler_RegisterScheme_Call{Call: _e.mock.On("RegisterScheme", scheme, handler)} |
| 3571 | } | 3702 | } | ||
| 3572 | 3703 | ||||
| 3573 | - | func (_c *MockMessageRouter_RegisterHandler_Call) Run(run func(name string, handler func(message string) (string, error))) *MockMessageRouter_RegisterHandler_Call { | 3704 | + | func (_c *MockSchemeHandler_RegisterScheme_Call) Run(run func(scheme string, handler func(uri string) ([]byte, string, error))) *MockSchemeHandler_RegisterScheme_Call { |
| 3574 | _c.Call.Run(func(args mock.Arguments) { | 3705 | _c.Call.Run(func(args mock.Arguments) { | ||
| 3575 | var arg0 string | 3706 | var arg0 string | ||
| 3576 | if args[0] != nil { | 3707 | if args[0] != nil { | ||
| 3577 | arg0 = args[0].(string) | 3708 | arg0 = args[0].(string) | ||
| 3578 | } | 3709 | } | ||
| 3579 | - | var arg1 func(message string) (string, error) | 3710 | + | var arg1 func(uri string) ([]byte, string, error) |
| 3580 | if args[1] != nil { | 3711 | if args[1] != nil { | ||
| 3581 | - | arg1 = args[1].(func(message string) (string, error)) | 3712 | + | arg1 = args[1].(func(uri string) ([]byte, string, error)) |
| 3582 | } | 3713 | } | ||
| 3583 | run( | 3714 | run( | ||
| 3584 | arg0, | 3715 | arg0, | ||
| @@ -3588,12 +3719,12 @@ func (_c *MockMessageRouter_RegisterHandler_Call) Run(run func(name string, hand | |||||
| 3588 | return _c | 3719 | return _c | ||
| 3589 | } | 3720 | } | ||
| 3590 | 3721 | ||||
| 3591 | - | func (_c *MockMessageRouter_RegisterHandler_Call) Return() *MockMessageRouter_RegisterHandler_Call { | 3722 | + | func (_c *MockSchemeHandler_RegisterScheme_Call) Return() *MockSchemeHandler_RegisterScheme_Call { |
| 3592 | _c.Call.Return() | 3723 | _c.Call.Return() | ||
| 3593 | return _c | 3724 | return _c | ||
| 3594 | } | 3725 | } | ||
| 3595 | 3726 | ||||
| 3596 | - | func (_c *MockMessageRouter_RegisterHandler_Call) RunAndReturn(run func(name string, handler func(message string) (string, error))) *MockMessageRouter_RegisterHandler_Call { | 3727 | + | func (_c *MockSchemeHandler_RegisterScheme_Call) RunAndReturn(run func(scheme string, handler func(uri string) ([]byte, string, error))) *MockSchemeHandler_RegisterScheme_Call { |
| 3597 | _c.Run(run) | 3728 | _c.Run(run) | ||
| 3598 | return _c | 3729 | return _c | ||
| 3599 | } | 3730 | } | ||
M internal/infrastructure/cef/messaging.go +3 -2
| @@ -115,8 +115,9 @@ func (r *MessageRouter) RegisterHandlerWithCallbacks( | |||
| 115 | 115 | return nil | |
| 116 | 116 | } | |
| 117 | 117 | ||
| 118 | - | // registerInternalHandler registers a CEF-internal handler for a message type. | |
| 119 | - | // Used for engine-internal handlers that work directly with uint64 webview IDs. | |
| 118 | + | // registerInternalHandler registers a CEF-internal handler that works with bare | |
| 119 | + | // uint64 webview IDs (e.g. accent key handlers in engine.go). External callers | |
| 120 | + | // should use RegisterHandler/RegisterHandlerWithCallbacks (port.WebUIHandlerRouter). | |
| 120 | 121 | func (r *MessageRouter) registerInternalHandler(msgType string, handler MessageHandler) error { | |
| 121 | 122 | if msgType == "" { | |
| 122 | 123 | return errors.New("message type cannot be empty") | |
| @@ -115,8 +115,9 @@ func (r *MessageRouter) RegisterHandlerWithCallbacks( | |||||
| 115 | return nil | 115 | return nil | ||
| 116 | } | 116 | } | ||
| 117 | 117 | ||||
| 118 | - | // registerInternalHandler registers a CEF-internal handler for a message type. | 118 | + | // registerInternalHandler registers a CEF-internal handler that works with bare |
| 119 | - | // Used for engine-internal handlers that work directly with uint64 webview IDs. | 119 | + | // uint64 webview IDs (e.g. accent key handlers in engine.go). External callers |
| 120 | + | // should use RegisterHandler/RegisterHandlerWithCallbacks (port.WebUIHandlerRouter). | |||
| 120 | func (r *MessageRouter) registerInternalHandler(msgType string, handler MessageHandler) error { | 121 | func (r *MessageRouter) registerInternalHandler(msgType string, handler MessageHandler) error { | ||
| 121 | if msgType == "" { | 122 | if msgType == "" { | ||
| 122 | return errors.New("message type cannot be empty") | 123 | return errors.New("message type cannot be empty") | ||
M internal/infrastructure/handlers/register_test.go +27 -52
| @@ -6,81 +6,56 @@ import ( | |||
| 6 | 6 | "testing" | |
| 7 | 7 | ||
| 8 | 8 | "github.com/bnema/dumber/internal/application/port" | |
| 9 | + | "github.com/bnema/dumber/internal/application/port/mocks" | |
| 9 | 10 | "github.com/stretchr/testify/assert" | |
| 11 | + | "github.com/stretchr/testify/mock" | |
| 10 | 12 | "github.com/stretchr/testify/require" | |
| 11 | 13 | ) | |
| 12 | 14 | ||
| 13 | - | // stubRouter implements port.WebUIHandlerRouter for testing. | |
| 14 | - | type stubRouter struct { | |
| 15 | - | handlers map[string]port.WebUIMessageHandler | |
| 16 | - | } | |
| 17 | - | ||
| 18 | - | func newStubRouter() *stubRouter { | |
| 19 | - | return &stubRouter{handlers: make(map[string]port.WebUIMessageHandler)} | |
| 20 | - | } | |
| 21 | - | ||
| 22 | - | func (r *stubRouter) RegisterHandler(msgType string, handler port.WebUIMessageHandler) error { | |
| 23 | - | r.handlers[msgType] = handler | |
| 24 | - | return nil | |
| 25 | - | } | |
| 26 | - | ||
| 27 | - | func (r *stubRouter) RegisterHandlerWithCallbacks(msgType, _, _, _ string, handler port.WebUIMessageHandler) error { | |
| 28 | - | r.handlers[msgType] = handler | |
| 29 | - | return nil | |
| 30 | - | } | |
| 31 | - | ||
| 32 | 15 | func TestRegisterAccentHandlers_NilRouter(t *testing.T) { | |
| 33 | - | ctx := context.Background() | |
| 34 | - | handler := &stubAccentHandler{} | |
| 35 | - | err := RegisterAccentHandlers(ctx, nil, handler) | |
| 16 | + | handler := mocks.NewMockAccentKeyHandler(t) | |
| 17 | + | err := RegisterAccentHandlers(context.Background(), nil, handler) | |
| 36 | 18 | require.Error(t, err) | |
| 37 | 19 | assert.Contains(t, err.Error(), "router") | |
| 38 | 20 | } | |
| 39 | 21 | ||
| 40 | 22 | func TestRegisterAccentHandlers_NilHandler(t *testing.T) { | |
| 41 | - | ctx := context.Background() | |
| 42 | - | router := newStubRouter() | |
| 43 | - | err := RegisterAccentHandlers(ctx, router, nil) | |
| 23 | + | router := mocks.NewMockWebUIHandlerRouter(t) | |
| 24 | + | err := RegisterAccentHandlers(context.Background(), router, nil) | |
| 44 | 25 | require.Error(t, err) | |
| 45 | 26 | assert.Contains(t, err.Error(), "handler") | |
| 46 | 27 | } | |
| 47 | 28 | ||
| 48 | 29 | func TestRegisterAccentHandlers_Success(t *testing.T) { | |
| 49 | - | ctx := context.Background() | |
| 50 | - | router := newStubRouter() | |
| 51 | - | handler := &stubAccentHandler{} | |
| 52 | - | err := RegisterAccentHandlers(ctx, router, handler) | |
| 30 | + | router := mocks.NewMockWebUIHandlerRouter(t) | |
| 31 | + | handler := mocks.NewMockAccentKeyHandler(t) | |
| 32 | + | ||
| 33 | + | router.EXPECT().RegisterHandler("accent_key_press", mock.AnythingOfType("port.WebUIMessageHandlerFunc")).Return(nil) | |
| 34 | + | router.EXPECT().RegisterHandler("accent_key_release", mock.AnythingOfType("port.WebUIMessageHandlerFunc")).Return(nil) | |
| 35 | + | ||
| 36 | + | err := RegisterAccentHandlers(context.Background(), router, handler) | |
| 53 | 37 | require.NoError(t, err) | |
| 54 | - | assert.Contains(t, router.handlers, "accent_key_press") | |
| 55 | - | assert.Contains(t, router.handlers, "accent_key_release") | |
| 56 | 38 | } | |
| 57 | 39 | ||
| 58 | 40 | func TestRegisterAccentHandlers_KeyPress(t *testing.T) { | |
| 59 | 41 | ctx := context.Background() | |
| 60 | - | router := newStubRouter() | |
| 61 | - | handler := &stubAccentHandler{} | |
| 42 | + | ||
| 43 | + | // Use a real router to capture the handler and invoke it. | |
| 44 | + | var captured port.WebUIMessageHandler | |
| 45 | + | router := mocks.NewMockWebUIHandlerRouter(t) | |
| 46 | + | router.EXPECT().RegisterHandler("accent_key_press", mock.AnythingOfType("port.WebUIMessageHandlerFunc")). | |
| 47 | + | Run(func(_ string, h port.WebUIMessageHandler) { captured = h }). | |
| 48 | + | Return(nil) | |
| 49 | + | router.EXPECT().RegisterHandler("accent_key_release", mock.AnythingOfType("port.WebUIMessageHandlerFunc")).Return(nil) | |
| 50 | + | ||
| 51 | + | handler := mocks.NewMockAccentKeyHandler(t) | |
| 52 | + | handler.EXPECT().OnKeyPressed(ctx, 'e', true).Return(false) | |
| 53 | + | ||
| 62 | 54 | err := RegisterAccentHandlers(ctx, router, handler) | |
| 63 | 55 | require.NoError(t, err) | |
| 64 | - | ||
| 65 | - | h := router.handlers["accent_key_press"] | |
| 66 | - | require.NotNil(t, h) | |
| 56 | + | require.NotNil(t, captured) | |
| 67 | 57 | ||
| 68 | 58 | payload := json.RawMessage(`{"char":"e","shift":true}`) | |
| 69 | - | _, err = h.Handle(ctx, 0, payload) | |
| 59 | + | _, err = captured.Handle(ctx, 0, payload) | |
| 70 | 60 | require.NoError(t, err) | |
| 71 | - | assert.Equal(t, 'e', handler.lastPressed) | |
| 72 | - | assert.True(t, handler.lastShift) | |
| 73 | - | } | |
| 74 | - | ||
| 75 | - | // stubAccentHandler satisfies port.AccentKeyHandler for tests. | |
| 76 | - | type stubAccentHandler struct { | |
| 77 | - | lastPressed rune | |
| 78 | - | lastShift bool | |
| 79 | - | } | |
| 80 | - | ||
| 81 | - | func (h *stubAccentHandler) OnKeyPressed(_ context.Context, r rune, shift bool) bool { | |
| 82 | - | h.lastPressed = r | |
| 83 | - | h.lastShift = shift | |
| 84 | - | return false | |
| 85 | 61 | } | |
| 86 | - | func (*stubAccentHandler) OnKeyReleased(_ context.Context, _ rune) {} | |
| @@ -6,81 +6,56 @@ import ( | |||||
| 6 | "testing" | 6 | "testing" | ||
| 7 | 7 | ||||
| 8 | "github.com/bnema/dumber/internal/application/port" | 8 | "github.com/bnema/dumber/internal/application/port" | ||
| 9 | + | "github.com/bnema/dumber/internal/application/port/mocks" | |||
| 9 | "github.com/stretchr/testify/assert" | 10 | "github.com/stretchr/testify/assert" | ||
| 11 | + | "github.com/stretchr/testify/mock" | |||
| 10 | "github.com/stretchr/testify/require" | 12 | "github.com/stretchr/testify/require" | ||
| 11 | ) | 13 | ) | ||
| 12 | 14 | ||||
| 13 | - | // stubRouter implements port.WebUIHandlerRouter for testing. | |||
| 14 | - | type stubRouter struct { | |||
| 15 | - | handlers map[string]port.WebUIMessageHandler | |||
| 16 | - | } | |||
| 17 | - | ||||
| 18 | - | func newStubRouter() *stubRouter { | |||
| 19 | - | return &stubRouter{handlers: make(map[string]port.WebUIMessageHandler)} | |||
| 20 | - | } | |||
| 21 | - | ||||
| 22 | - | func (r *stubRouter) RegisterHandler(msgType string, handler port.WebUIMessageHandler) error { | |||
| 23 | - | r.handlers[msgType] = handler | |||
| 24 | - | return nil | |||
| 25 | - | } | |||
| 26 | - | ||||
| 27 | - | func (r *stubRouter) RegisterHandlerWithCallbacks(msgType, _, _, _ string, handler port.WebUIMessageHandler) error { | |||
| 28 | - | r.handlers[msgType] = handler | |||
| 29 | - | return nil | |||
| 30 | - | } | |||
| 31 | - | ||||
| 32 | func TestRegisterAccentHandlers_NilRouter(t *testing.T) { | 15 | func TestRegisterAccentHandlers_NilRouter(t *testing.T) { | ||
| 33 | - | ctx := context.Background() | 16 | + | handler := mocks.NewMockAccentKeyHandler(t) |
| 34 | - | handler := &stubAccentHandler{} | 17 | + | err := RegisterAccentHandlers(context.Background(), nil, handler) |
| 35 | - | err := RegisterAccentHandlers(ctx, nil, handler) | |||
| 36 | require.Error(t, err) | 18 | require.Error(t, err) | ||
| 37 | assert.Contains(t, err.Error(), "router") | 19 | assert.Contains(t, err.Error(), "router") | ||
| 38 | } | 20 | } | ||
| 39 | 21 | ||||
| 40 | func TestRegisterAccentHandlers_NilHandler(t *testing.T) { | 22 | func TestRegisterAccentHandlers_NilHandler(t *testing.T) { | ||
| 41 | - | ctx := context.Background() | 23 | + | router := mocks.NewMockWebUIHandlerRouter(t) |
| 42 | - | router := newStubRouter() | 24 | + | err := RegisterAccentHandlers(context.Background(), router, nil) |
| 43 | - | err := RegisterAccentHandlers(ctx, router, nil) | |||
| 44 | require.Error(t, err) | 25 | require.Error(t, err) | ||
| 45 | assert.Contains(t, err.Error(), "handler") | 26 | assert.Contains(t, err.Error(), "handler") | ||
| 46 | } | 27 | } | ||
| 47 | 28 | ||||
| 48 | func TestRegisterAccentHandlers_Success(t *testing.T) { | 29 | func TestRegisterAccentHandlers_Success(t *testing.T) { | ||
| 49 | - | ctx := context.Background() | 30 | + | router := mocks.NewMockWebUIHandlerRouter(t) |
| 50 | - | router := newStubRouter() | 31 | + | handler := mocks.NewMockAccentKeyHandler(t) |
| 51 | - | handler := &stubAccentHandler{} | 32 | + | |
| 52 | - | err := RegisterAccentHandlers(ctx, router, handler) | 33 | + | router.EXPECT().RegisterHandler("accent_key_press", mock.AnythingOfType("port.WebUIMessageHandlerFunc")).Return(nil) |
| 34 | + | router.EXPECT().RegisterHandler("accent_key_release", mock.AnythingOfType("port.WebUIMessageHandlerFunc")).Return(nil) | |||
| 35 | + | ||||
| 36 | + | err := RegisterAccentHandlers(context.Background(), router, handler) | |||
| 53 | require.NoError(t, err) | 37 | require.NoError(t, err) | ||
| 54 | - | assert.Contains(t, router.handlers, "accent_key_press") | |||
| 55 | - | assert.Contains(t, router.handlers, "accent_key_release") | |||
| 56 | } | 38 | } | ||
| 57 | 39 | ||||
| 58 | func TestRegisterAccentHandlers_KeyPress(t *testing.T) { | 40 | func TestRegisterAccentHandlers_KeyPress(t *testing.T) { | ||
| 59 | ctx := context.Background() | 41 | ctx := context.Background() | ||
| 60 | - | router := newStubRouter() | 42 | + | |
| 61 | - | handler := &stubAccentHandler{} | 43 | + | // Use a real router to capture the handler and invoke it. |
| 44 | + | var captured port.WebUIMessageHandler | |||
| 45 | + | router := mocks.NewMockWebUIHandlerRouter(t) | |||
| 46 | + | router.EXPECT().RegisterHandler("accent_key_press", mock.AnythingOfType("port.WebUIMessageHandlerFunc")). | |||
| 47 | + | Run(func(_ string, h port.WebUIMessageHandler) { captured = h }). | |||
| 48 | + | Return(nil) | |||
| 49 | + | router.EXPECT().RegisterHandler("accent_key_release", mock.AnythingOfType("port.WebUIMessageHandlerFunc")).Return(nil) | |||
| 50 | + | ||||
| 51 | + | handler := mocks.NewMockAccentKeyHandler(t) | |||
| 52 | + | handler.EXPECT().OnKeyPressed(ctx, 'e', true).Return(false) | |||
| 53 | + | ||||
| 62 | err := RegisterAccentHandlers(ctx, router, handler) | 54 | err := RegisterAccentHandlers(ctx, router, handler) | ||
| 63 | require.NoError(t, err) | 55 | require.NoError(t, err) | ||
| 64 | - | 56 | + | require.NotNil(t, captured) | |
| 65 | - | h := router.handlers["accent_key_press"] | |||
| 66 | - | require.NotNil(t, h) | |||
| 67 | 57 | ||||
| 68 | payload := json.RawMessage(`{"char":"e","shift":true}`) | 58 | payload := json.RawMessage(`{"char":"e","shift":true}`) | ||
| 69 | - | _, err = h.Handle(ctx, 0, payload) | 59 | + | _, err = captured.Handle(ctx, 0, payload) |
| 70 | require.NoError(t, err) | 60 | require.NoError(t, err) | ||
| 71 | - | assert.Equal(t, 'e', handler.lastPressed) | |||
| 72 | - | assert.True(t, handler.lastShift) | |||
| 73 | - | } | |||
| 74 | - | ||||
| 75 | - | // stubAccentHandler satisfies port.AccentKeyHandler for tests. | |||
| 76 | - | type stubAccentHandler struct { | |||
| 77 | - | lastPressed rune | |||
| 78 | - | lastShift bool | |||
| 79 | - | } | |||
| 80 | - | ||||
| 81 | - | func (h *stubAccentHandler) OnKeyPressed(_ context.Context, r rune, shift bool) bool { | |||
| 82 | - | h.lastPressed = r | |||
| 83 | - | h.lastShift = shift | |||
| 84 | - | return false | |||
| 85 | } | 61 | } | ||
| 86 | - | func (*stubAccentHandler) OnKeyReleased(_ context.Context, _ rune) {} | |||