MCPcopy Create free account
hub / github.com/daodst/chat / testFederationAPIJoinThenKeyUpdate

Function testFederationAPIJoinThenKeyUpdate

federationapi/federationapi_test.go:162–258  ·  view source on GitHub ↗
(t *testing.T, dbType test.DBType)

Source from the content-addressed store, hash-verified

160}
161
162func testFederationAPIJoinThenKeyUpdate(t *testing.T, dbType test.DBType) {
163 base, close := testrig.CreateBaseDendrite(t, dbType)
164 base.Cfg.FederationAPI.PreferDirectFetch = true
165 defer close()
166 jsctx, _ := base.NATS.Prepare(base.ProcessContext, &base.Cfg.Global.JetStream)
167 defer jetstream.DeleteAllStreams(jsctx, &base.Cfg.Global.JetStream)
168
169 serverA := gomatrixserverlib.ServerName("server.a")
170 serverAKeyID := gomatrixserverlib.KeyID("ed25519:servera")
171 serverAPrivKey := test.PrivateKeyA
172 creator := test.NewUser(t, test.WithSigningServer(serverA, serverAKeyID, serverAPrivKey))
173
174 myServer := base.Cfg.Global.ServerName
175 myServerKeyID := base.Cfg.Global.KeyID
176 myServerPrivKey := base.Cfg.Global.PrivateKey
177 joiningUser := test.NewUser(t, test.WithSigningServer(myServer, myServerKeyID, myServerPrivKey))
178 fmt.Printf("creator: %v joining user: %v\n", creator.ID, joiningUser.ID)
179 room := test.NewRoom(t, creator)
180
181 rsapi := &fedRoomserverAPI{
182 inputRoomEvents: func(ctx context.Context, req *rsapi.InputRoomEventsRequest, res *rsapi.InputRoomEventsResponse) {
183 if req.Asynchronous {
184 t.Errorf("InputRoomEvents from PerformJoin MUST be synchronous")
185 }
186 },
187 queryRoomsForUser: func(ctx context.Context, req *rsapi.QueryRoomsForUserRequest, res *rsapi.QueryRoomsForUserResponse) error {
188 if req.UserID == joiningUser.ID && req.WantMembership == "join" {
189 res.RoomIDs = []string{room.ID}
190 return nil
191 }
192 return fmt.Errorf("unexpected queryRoomsForUser: %+v", *req)
193 },
194 }
195 fc := &fedClient{
196 allowJoins: []*test.Room{room},
197 t: t,
198 keys: map[gomatrixserverlib.ServerName]struct {
199 key ed25519.PrivateKey
200 keyID gomatrixserverlib.KeyID
201 }{
202 serverA: {
203 key: serverAPrivKey,
204 keyID: serverAKeyID,
205 },
206 myServer: {
207 key: myServerPrivKey,
208 keyID: myServerKeyID,
209 },
210 },
211 }
212 fsapi := federationapi.NewInternalAPI(base, fc, rsapi, base.Caches, nil, false)
213
214 var resp api.PerformJoinResponse
215 fsapi.PerformJoin(context.Background(), &api.PerformJoinRequest{
216 RoomID: room.ID,
217 UserID: joiningUser.ID,
218 ServerNames: []gomatrixserverlib.ServerName{serverA},
219 }, &resp)

Callers 1

Calls 6

PrefixedMethod · 0.80
LockMethod · 0.80
UnlockMethod · 0.80
PrepareMethod · 0.65
PerformJoinMethod · 0.65
SetMethod · 0.65

Tested by

no test coverage detected