mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-09-29 14:06:36 +08:00
1e19d8114a
- Split shared monolithic consts into bot, push, and errs with typed sentinel errors - Restructure model layer into distinct bot and push subdomains - Refactor DAO layer to enforce single-owner principle and remove cross-table raw SQL queries - Decompose 1150+ line service/push.go into push_channel, push_event, push_trigger, push_worker, and push_template - Clean up controller layer with generic request handlers and parameter validation in controller/base.go - Streamline plugin.go to core Cordis lifecycle orchestration and remove re-export bloat - Verify all unit tests, race tests, Cordis architecture rules, and Swagger generation pass cleanly
35 lines
1.1 KiB
Go
35 lines
1.1 KiB
Go
// Copyright 2026 Arctel.net
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package service_test
|
|
|
|
import (
|
|
"Wavelet/plugins/domain/msg_gateway/model/do"
|
|
"Wavelet/plugins/domain/msg_gateway/service"
|
|
"context"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
type stubChannel struct{}
|
|
|
|
func (stubChannel) Type() string { return "stub" }
|
|
func (stubChannel) Connect(context.Context) error { return nil }
|
|
func (stubChannel) Disconnect(context.Context) error { return nil }
|
|
func (stubChannel) Send(context.Context, do.Recipient, do.OutboundMessage) error { return nil }
|
|
func (stubChannel) Capabilities() do.Capability { return do.Capability{Text: true} }
|
|
|
|
func TestRegisterLookup(t *testing.T) {
|
|
service.Register("stub", func(do.ChannelConfig, service.Handler) (service.Channel, error) {
|
|
return stubChannel{}, nil
|
|
})
|
|
fn, ok := service.Lookup("stub")
|
|
require.True(t, ok)
|
|
|
|
ch, err := fn(do.ChannelConfig{}, nil)
|
|
require.NoError(t, err)
|
|
assert.Equal(t, "stub", ch.Type())
|
|
}
|