mirror of
https://github.com/hoernschen/dendrite.git
synced 2024-12-26 15:08:28 +00:00
Fix CI and test.WithAllDatabases
This commit is contained in:
parent
e245a26f6b
commit
07e8ed13f6
1 changed files with 39 additions and 40 deletions
|
@ -77,32 +77,6 @@ func TestAppserviceInternalAPI(t *testing.T) {
|
||||||
}
|
}
|
||||||
}))
|
}))
|
||||||
|
|
||||||
// TODO: use test.WithAllDatabases
|
|
||||||
// only one DBType, since appservice.AddInternalRoutes complains about multiple prometheus counters added
|
|
||||||
base, closeBase := testrig.CreateBaseDendrite(t, test.DBTypeSQLite)
|
|
||||||
defer closeBase()
|
|
||||||
|
|
||||||
// Create a dummy application service
|
|
||||||
base.Cfg.AppServiceAPI.Derived.ApplicationServices = []config.ApplicationService{
|
|
||||||
{
|
|
||||||
ID: "someID",
|
|
||||||
URL: srv.URL,
|
|
||||||
ASToken: "",
|
|
||||||
HSToken: "",
|
|
||||||
SenderLocalpart: "senderLocalPart",
|
|
||||||
NamespaceMap: map[string][]config.ApplicationServiceNamespace{
|
|
||||||
"users": {{RegexpObject: regexp.MustCompile("as-.*")}},
|
|
||||||
"aliases": {{RegexpObject: regexp.MustCompile("asroom-.*")}},
|
|
||||||
},
|
|
||||||
Protocols: []string{existingProtocol},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create required internal APIs
|
|
||||||
rsAPI := roomserver.NewInternalAPI(base)
|
|
||||||
usrAPI := userapi.NewInternalAPI(base, &base.Cfg.UserAPI, nil, nil, rsAPI, nil)
|
|
||||||
asAPI := appservice.NewInternalAPI(base, usrAPI, rsAPI)
|
|
||||||
|
|
||||||
// The test cases to run
|
// The test cases to run
|
||||||
runCases := func(t *testing.T, testAPI api.AppServiceInternalAPI) {
|
runCases := func(t *testing.T, testAPI api.AppServiceInternalAPI) {
|
||||||
t.Run("UserIDExists", func(t *testing.T) {
|
t.Run("UserIDExists", func(t *testing.T) {
|
||||||
|
@ -133,24 +107,49 @@ func TestAppserviceInternalAPI(t *testing.T) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// Finally execute the tests
|
test.WithAllDatabases(t, func(t *testing.T, dbType test.DBType) {
|
||||||
t.Run("HTTP API", func(t *testing.T) {
|
base, closeBase := testrig.CreateBaseDendrite(t, test.DBTypeSQLite)
|
||||||
router := mux.NewRouter().PathPrefix(httputil.InternalPathPrefix).Subrouter()
|
defer closeBase()
|
||||||
appservice.AddInternalRoutes(router, asAPI)
|
|
||||||
apiURL, cancel := test.ListenAndServe(t, router, false)
|
|
||||||
defer cancel()
|
|
||||||
|
|
||||||
asHTTPApi, err := inthttp.NewAppserviceClient(apiURL, &http.Client{})
|
// Create a dummy application service
|
||||||
if err != nil {
|
base.Cfg.AppServiceAPI.Derived.ApplicationServices = []config.ApplicationService{
|
||||||
t.Fatalf("failed to create HTTP client: %s", err)
|
{
|
||||||
|
ID: "someID",
|
||||||
|
URL: srv.URL,
|
||||||
|
ASToken: "",
|
||||||
|
HSToken: "",
|
||||||
|
SenderLocalpart: "senderLocalPart",
|
||||||
|
NamespaceMap: map[string][]config.ApplicationServiceNamespace{
|
||||||
|
"users": {{RegexpObject: regexp.MustCompile("as-.*")}},
|
||||||
|
"aliases": {{RegexpObject: regexp.MustCompile("asroom-.*")}},
|
||||||
|
},
|
||||||
|
Protocols: []string{existingProtocol},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
runCases(t, asHTTPApi)
|
|
||||||
})
|
|
||||||
|
|
||||||
t.Run("Monolith", func(t *testing.T) {
|
// Create required internal APIs
|
||||||
runCases(t, asAPI)
|
rsAPI := roomserver.NewInternalAPI(base)
|
||||||
})
|
usrAPI := userapi.NewInternalAPI(base, &base.Cfg.UserAPI, nil, nil, rsAPI, nil)
|
||||||
|
asAPI := appservice.NewInternalAPI(base, usrAPI, rsAPI)
|
||||||
|
|
||||||
|
// Finally execute the tests
|
||||||
|
t.Run("HTTP API", func(t *testing.T) {
|
||||||
|
router := mux.NewRouter().PathPrefix(httputil.InternalPathPrefix).Subrouter()
|
||||||
|
appservice.AddInternalRoutes(router, asAPI, base.EnableMetrics)
|
||||||
|
apiURL, cancel := test.ListenAndServe(t, router, false)
|
||||||
|
defer cancel()
|
||||||
|
|
||||||
|
asHTTPApi, err := inthttp.NewAppserviceClient(apiURL, &http.Client{})
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("failed to create HTTP client: %s", err)
|
||||||
|
}
|
||||||
|
runCases(t, asHTTPApi)
|
||||||
|
})
|
||||||
|
|
||||||
|
t.Run("Monolith", func(t *testing.T) {
|
||||||
|
runCases(t, asAPI)
|
||||||
|
})
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func testUserIDExists(t *testing.T, asAPI api.AppServiceInternalAPI, userID string, wantExists bool) {
|
func testUserIDExists(t *testing.T, asAPI api.AppServiceInternalAPI, userID string, wantExists bool) {
|
||||||
|
|
Loading…
Reference in a new issue