Skip to content

Commit

Permalink
fix: correct mongodb HasDatabase call
Browse files Browse the repository at this point in the history
  • Loading branch information
anbraten committed Feb 1, 2022
1 parent d8ba7d6 commit 612e60c
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 8 deletions.
4 changes: 2 additions & 2 deletions adapters/mongo_adapter.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ type mongoAdapter struct {
}

func (adapter mongoAdapter) HasDatabase(ctx context.Context, database string) (bool, error) {
databaseNames, err := adapter.client.ListDatabaseNames(ctx, bson.D{{Key: "empty", Value: false}})
databaseNames, err := adapter.client.ListDatabaseNames(ctx, bson.D{})
if err != nil {
return false, err
}
Expand All @@ -24,7 +24,7 @@ func (adapter mongoAdapter) HasDatabase(ctx context.Context, database string) (b

func (adapter mongoAdapter) CreateDatabase(ctx context.Context, database string) error {
// create dummy data as mongo only creates databases if they contain something
_, err := adapter.client.Database(database).Collection("__internal-placeholder__").InsertOne(ctx, bson.D{{Key: "empty", Value: true}})
_, err := adapter.client.Database(database).Collection("delete_me").InsertOne(ctx, bson.D{{Key: "empty", Value: true}})
return err
}

Expand Down
21 changes: 15 additions & 6 deletions adapters/utils_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,16 @@ import (
func testHelper(t *testing.T, ctx context.Context, adapter adapters.DatabaseAdapter) {
// given
var err error
databaseName := "guestbook"
databaseUsername := "guestbook-admin"
databasePassword := "top-secret-123"

t.Cleanup(func() {
if err = adapter.DeleteDatabaseUser(ctx, "guestbook", "guestbook-admin"); err != nil {
if err = adapter.DeleteDatabaseUser(ctx, databaseName, databaseUsername); err != nil {
t.Errorf("Error deleting database user: %s", err)
}

if err := adapter.DeleteDatabase(ctx, "guestbook"); err != nil {
if err := adapter.DeleteDatabase(ctx, databaseName); err != nil {
t.Errorf("Error deleting database: %s", err)
}

Expand All @@ -26,21 +29,27 @@ func testHelper(t *testing.T, ctx context.Context, adapter adapters.DatabaseAdap
})

// when
err = adapter.CreateDatabase(ctx, "guestbook")
err = adapter.CreateDatabase(ctx, databaseName)
if err != nil {
t.Fatalf("Error creating database: %s", err)
}
err = adapter.CreateDatabaseUser(ctx, "guestbook", "guestbook-admin", "test123")
err = adapter.CreateDatabaseUser(ctx, databaseName, databaseUsername, databasePassword)
if err != nil {
t.Fatalf("Error creating database user: %s", err)
}

// then
res, err := adapter.HasDatabaseUserWithAccess(ctx, "guestbook", "guestbook-admin")
hasDatabase, err := adapter.HasDatabase(ctx, databaseName)
if err != nil {
t.Fatalf("Error creating database: %s", err)
} else if !hasDatabase {
t.Fatalf("Database does not exists")
}
if !res {

hasDatabaseUserWithAccess, err := adapter.HasDatabaseUserWithAccess(ctx, databaseName, databaseUsername)
if err != nil {
t.Fatalf("Error creating database user with access: %s", err)
} else if !hasDatabaseUserWithAccess {
t.Fatalf("Database user does not exists")
}
}
10 changes: 10 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,13 @@ services:
MONGO_INITDB_ROOT_PASSWORD: "1234"
ports:
- 27017:27017
mongo-express:
image: mongo-express
ports:
- 8081:8081
environment:
ME_CONFIG_MONGODB_ADMINUSERNAME: admin
ME_CONFIG_MONGODB_ADMINPASSWORD: 1234
ME_CONFIG_MONGODB_SERVER: mongodb
depends_on:
- mongodb

0 comments on commit 612e60c

Please sign in to comment.