Add roomserver tests (2/?) (#2445)

* Add invite table tests; move variable declarations

* Add Membership table tests

* Move variable declarations

* Add PrevEvents table tests

* Add Published table test

* Add Redactions tests
Fix bug in SQLite markRedactionValidatedSQL

* PR comments, better readability for invite tests
This commit is contained in:
Till 2022-05-10 14:41:12 +02:00 committed by GitHub
parent 1897e2f1c0
commit 6db08b2874
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
17 changed files with 517 additions and 66 deletions

View file

@ -69,12 +69,12 @@ type inviteStatements struct {
selectInvitesAboutToRetireStmt *sql.Stmt
}
func createInvitesTable(db *sql.DB) error {
func CreateInvitesTable(db *sql.DB) error {
_, err := db.Exec(inviteSchema)
return err
}
func prepareInvitesTable(db *sql.DB) (tables.Invites, error) {
func PrepareInvitesTable(db *sql.DB) (tables.Invites, error) {
s := &inviteStatements{
db: db,
}
@ -119,8 +119,8 @@ func (s *inviteStatements) UpdateInviteRetired(
return
}
defer internal.CloseAndLogIfError(ctx, rows, "UpdateInviteRetired: rows.close() failed")
var inviteEventID string
for rows.Next() {
var inviteEventID string
if err = rows.Scan(&inviteEventID); err != nil {
return
}
@ -147,9 +147,9 @@ func (s *inviteStatements) SelectInviteActiveForUserInRoom(
defer internal.CloseAndLogIfError(ctx, rows, "selectInviteActiveForUserInRoom: rows.close() failed")
var result []types.EventStateKeyNID
var eventIDs []string
var eventID string
var senderUserNID int64
for rows.Next() {
var eventID string
var senderUserNID int64
if err := rows.Scan(&eventID, &senderUserNID); err != nil {
return nil, nil, err
}

View file

@ -136,12 +136,12 @@ type membershipStatements struct {
selectServerInRoomStmt *sql.Stmt
}
func createMembershipTable(db *sql.DB) error {
func CreateMembershipTable(db *sql.DB) error {
_, err := db.Exec(membershipSchema)
return err
}
func prepareMembershipTable(db *sql.DB) (tables.Membership, error) {
func PrepareMembershipTable(db *sql.DB) (tables.Membership, error) {
s := &membershipStatements{
db: db,
}
@ -212,8 +212,8 @@ func (s *membershipStatements) SelectMembershipsFromRoom(
}
defer internal.CloseAndLogIfError(ctx, rows, "selectMembershipsFromRoom: rows.close() failed")
var eNID types.EventNID
for rows.Next() {
var eNID types.EventNID
if err = rows.Scan(&eNID); err != nil {
return
}
@ -239,8 +239,8 @@ func (s *membershipStatements) SelectMembershipsFromRoomAndMembership(
}
defer internal.CloseAndLogIfError(ctx, rows, "selectMembershipsFromRoomAndMembership: rows.close() failed")
var eNID types.EventNID
for rows.Next() {
var eNID types.EventNID
if err = rows.Scan(&eNID); err != nil {
return
}
@ -275,8 +275,8 @@ func (s *membershipStatements) SelectRoomsWithMembership(
}
defer internal.CloseAndLogIfError(ctx, rows, "SelectRoomsWithMembership: rows.close() failed")
var roomNIDs []types.RoomNID
var roomNID types.RoomNID
for rows.Next() {
var roomNID types.RoomNID
if err := rows.Scan(&roomNID); err != nil {
return nil, err
}
@ -307,9 +307,9 @@ func (s *membershipStatements) SelectJoinedUsersSetForRooms(ctx context.Context,
}
defer internal.CloseAndLogIfError(ctx, rows, "selectJoinedUsersSetForRooms: rows.close() failed")
result := make(map[types.EventStateKeyNID]int)
var userID types.EventStateKeyNID
var count int
for rows.Next() {
var userID types.EventStateKeyNID
var count int
if err := rows.Scan(&userID, &count); err != nil {
return nil, err
}
@ -326,12 +326,12 @@ func (s *membershipStatements) SelectKnownUsers(ctx context.Context, txn *sql.Tx
}
result := []string{}
defer internal.CloseAndLogIfError(ctx, rows, "SelectKnownUsers: rows.close() failed")
var resUserID string
for rows.Next() {
var userID string
if err := rows.Scan(&userID); err != nil {
if err := rows.Scan(&resUserID); err != nil {
return nil, err
}
result = append(result, userID)
result = append(result, resUserID)
}
return result, rows.Err()
}

View file

@ -70,12 +70,12 @@ type previousEventStatements struct {
selectPreviousEventExistsStmt *sql.Stmt
}
func createPrevEventsTable(db *sql.DB) error {
func CreatePrevEventsTable(db *sql.DB) error {
_, err := db.Exec(previousEventSchema)
return err
}
func preparePrevEventsTable(db *sql.DB) (tables.PreviousEvents, error) {
func PreparePrevEventsTable(db *sql.DB) (tables.PreviousEvents, error) {
s := &previousEventStatements{
db: db,
}

View file

@ -49,12 +49,12 @@ type publishedStatements struct {
selectPublishedStmt *sql.Stmt
}
func createPublishedTable(db *sql.DB) error {
func CreatePublishedTable(db *sql.DB) error {
_, err := db.Exec(publishedSchema)
return err
}
func preparePublishedTable(db *sql.DB) (tables.Published, error) {
func PreparePublishedTable(db *sql.DB) (tables.Published, error) {
s := &publishedStatements{
db: db,
}
@ -96,8 +96,8 @@ func (s *publishedStatements) SelectAllPublishedRooms(
defer internal.CloseAndLogIfError(ctx, rows, "selectAllPublishedStmt: rows.close() failed")
var roomIDs []string
var roomID string
for rows.Next() {
var roomID string
if err = rows.Scan(&roomID); err != nil {
return nil, err
}

View file

@ -48,7 +48,7 @@ const selectRedactionInfoByEventBeingRedactedSQL = "" +
" WHERE redacts_event_id = $1"
const markRedactionValidatedSQL = "" +
" UPDATE roomserver_redactions SET validated = $2 WHERE redaction_event_id = $1"
" UPDATE roomserver_redactions SET validated = $1 WHERE redaction_event_id = $2"
type redactionStatements struct {
db *sql.DB
@ -58,12 +58,12 @@ type redactionStatements struct {
markRedactionValidatedStmt *sql.Stmt
}
func createRedactionsTable(db *sql.DB) error {
func CreateRedactionsTable(db *sql.DB) error {
_, err := db.Exec(redactionsSchema)
return err
}
func prepareRedactionsTable(db *sql.DB) (tables.Redactions, error) {
func PrepareRedactionsTable(db *sql.DB) (tables.Redactions, error) {
s := &redactionStatements{
db: db,
}
@ -118,6 +118,6 @@ func (s *redactionStatements) MarkRedactionValidated(
ctx context.Context, txn *sql.Tx, redactionEventID string, validated bool,
) error {
stmt := sqlutil.TxStmt(txn, s.markRedactionValidatedStmt)
_, err := stmt.ExecContext(ctx, redactionEventID, validated)
_, err := stmt.ExecContext(ctx, validated, redactionEventID)
return err
}

View file

@ -98,22 +98,22 @@ func (d *Database) create(db *sql.DB) error {
if err := createStateSnapshotTable(db); err != nil {
return err
}
if err := createPrevEventsTable(db); err != nil {
if err := CreatePrevEventsTable(db); err != nil {
return err
}
if err := createRoomAliasesTable(db); err != nil {
return err
}
if err := createInvitesTable(db); err != nil {
if err := CreateInvitesTable(db); err != nil {
return err
}
if err := createMembershipTable(db); err != nil {
if err := CreateMembershipTable(db); err != nil {
return err
}
if err := createPublishedTable(db); err != nil {
if err := CreatePublishedTable(db); err != nil {
return err
}
if err := createRedactionsTable(db); err != nil {
if err := CreateRedactionsTable(db); err != nil {
return err
}
@ -149,7 +149,7 @@ func (d *Database) prepare(db *sql.DB, writer sqlutil.Writer, cache caching.Room
if err != nil {
return err
}
prevEvents, err := preparePrevEventsTable(db)
prevEvents, err := PreparePrevEventsTable(db)
if err != nil {
return err
}
@ -157,19 +157,19 @@ func (d *Database) prepare(db *sql.DB, writer sqlutil.Writer, cache caching.Room
if err != nil {
return err
}
invites, err := prepareInvitesTable(db)
invites, err := PrepareInvitesTable(db)
if err != nil {
return err
}
membership, err := prepareMembershipTable(db)
membership, err := PrepareMembershipTable(db)
if err != nil {
return err
}
published, err := preparePublishedTable(db)
published, err := PreparePublishedTable(db)
if err != nil {
return err
}
redactions, err := prepareRedactionsTable(db)
redactions, err := PrepareRedactionsTable(db)
if err != nil {
return err
}