Skip to content

Commit 612e60c

Browse files
committed
fix: correct mongodb HasDatabase call
1 parent d8ba7d6 commit 612e60c

File tree

3 files changed

+27
-8
lines changed

3 files changed

+27
-8
lines changed

adapters/mongo_adapter.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ type mongoAdapter struct {
1414
}
1515

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

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

adapters/utils_test.go

+15-6
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,16 @@ import (
1010
func testHelper(t *testing.T, ctx context.Context, adapter adapters.DatabaseAdapter) {
1111
// given
1212
var err error
13+
databaseName := "guestbook"
14+
databaseUsername := "guestbook-admin"
15+
databasePassword := "top-secret-123"
1316

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

19-
if err := adapter.DeleteDatabase(ctx, "guestbook"); err != nil {
22+
if err := adapter.DeleteDatabase(ctx, databaseName); err != nil {
2023
t.Errorf("Error deleting database: %s", err)
2124
}
2225

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

2831
// when
29-
err = adapter.CreateDatabase(ctx, "guestbook")
32+
err = adapter.CreateDatabase(ctx, databaseName)
3033
if err != nil {
3134
t.Fatalf("Error creating database: %s", err)
3235
}
33-
err = adapter.CreateDatabaseUser(ctx, "guestbook", "guestbook-admin", "test123")
36+
err = adapter.CreateDatabaseUser(ctx, databaseName, databaseUsername, databasePassword)
3437
if err != nil {
3538
t.Fatalf("Error creating database user: %s", err)
3639
}
3740

3841
// then
39-
res, err := adapter.HasDatabaseUserWithAccess(ctx, "guestbook", "guestbook-admin")
42+
hasDatabase, err := adapter.HasDatabase(ctx, databaseName)
4043
if err != nil {
4144
t.Fatalf("Error creating database: %s", err)
45+
} else if !hasDatabase {
46+
t.Fatalf("Database does not exists")
4247
}
43-
if !res {
48+
49+
hasDatabaseUserWithAccess, err := adapter.HasDatabaseUserWithAccess(ctx, databaseName, databaseUsername)
50+
if err != nil {
51+
t.Fatalf("Error creating database user with access: %s", err)
52+
} else if !hasDatabaseUserWithAccess {
4453
t.Fatalf("Database user does not exists")
4554
}
4655
}

docker-compose.yml

+10
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,13 @@ services:
1515
MONGO_INITDB_ROOT_PASSWORD: "1234"
1616
ports:
1717
- 27017:27017
18+
mongo-express:
19+
image: mongo-express
20+
ports:
21+
- 8081:8081
22+
environment:
23+
ME_CONFIG_MONGODB_ADMINUSERNAME: admin
24+
ME_CONFIG_MONGODB_ADMINPASSWORD: 1234
25+
ME_CONFIG_MONGODB_SERVER: mongodb
26+
depends_on:
27+
- mongodb

0 commit comments

Comments
 (0)