Skip to content

Commit 05cb02d

Browse files
h3n4lclaude
andcommitted
refactor: move tests to proper files, mark replace as temporary
- Move TestPrettyNoOp to collection_test.go (cursor method behavior) - Move TestInt32StringArg to bson_helpers_test.go (BSON helper behavior) - Delete compat_test.go - Add TODO comment on replace directive (remove after parser published) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent ae930bd commit 05cb02d

File tree

4 files changed

+65
-85
lines changed

4 files changed

+65
-85
lines changed

collection_test.go

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2262,3 +2262,37 @@ func TestCursorMinMethod(t *testing.T) {
22622262
require.Equal(t, 2, len(result.Value))
22632263
})
22642264
}
2265+
2266+
func TestPrettyNoOp(t *testing.T) {
2267+
testutil.RunOnAllDBs(t, func(t *testing.T, db testutil.TestDB) {
2268+
dbName := fmt.Sprintf("testdb_pretty_%s", db.Name)
2269+
defer testutil.CleanupDatabase(t, db.Client, dbName)
2270+
2271+
ctx := context.Background()
2272+
collection := db.Client.Database(dbName).Collection("users")
2273+
_, err := collection.InsertMany(ctx, []any{
2274+
bson.M{"name": "alice", "age": 30},
2275+
bson.M{"name": "bob", "age": 25},
2276+
})
2277+
require.NoError(t, err)
2278+
2279+
gc := gomongo.NewClient(db.Client)
2280+
2281+
// pretty() should be a no-op cursor method
2282+
result, err := gc.Execute(ctx, dbName, `db.users.find().pretty()`)
2283+
require.NoError(t, err)
2284+
require.Equal(t, 2, len(result.Value))
2285+
2286+
// pretty() chained after sort
2287+
result, err = gc.Execute(ctx, dbName, `db.users.find().sort({name: 1}).pretty()`)
2288+
require.NoError(t, err)
2289+
require.Equal(t, 2, len(result.Value))
2290+
rows := valuesToStrings(result.Value)
2291+
require.Contains(t, rows[0], `"alice"`)
2292+
2293+
// aggregate().pretty()
2294+
result, err = gc.Execute(ctx, dbName, `db.users.aggregate([{$match: {name: "alice"}}]).pretty()`)
2295+
require.NoError(t, err)
2296+
require.Equal(t, 1, len(result.Value))
2297+
})
2298+
}

compat_test.go

Lines changed: 0 additions & 85 deletions
This file was deleted.

go.mod

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,4 +77,5 @@ require (
7777

7878
replace github.com/antlr4-go/antlr/v4 => github.com/bytebase/antlr/v4 v4.0.0-20240827034948-8c385f108920
7979

80+
// TODO: Remove after parser is published with Int32 string arg support.
8081
replace github.com/bytebase/parser => ../parser

internal/translator/bson_helpers_test.go

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,3 +204,33 @@ func TestDecimal128Helper(t *testing.T) {
204204
require.NotNil(t, price)
205205
})
206206
}
207+
208+
func TestInt32StringArg(t *testing.T) {
209+
testutil.RunOnAllDBs(t, func(t *testing.T, db testutil.TestDB) {
210+
dbName := "testdb_int32str_" + db.Name
211+
defer testutil.CleanupDatabase(t, db.Client, dbName)
212+
213+
gc := gomongo.NewClient(db.Client)
214+
ctx := context.Background()
215+
216+
// Int32("123") should parse the string as int32
217+
_, err := gc.Execute(ctx, dbName, `db.test.insertOne({val: Int32("123")})`)
218+
require.NoError(t, err)
219+
220+
result, err := gc.Execute(ctx, dbName, `db.test.findOne({})`)
221+
require.NoError(t, err)
222+
require.Equal(t, 1, len(result.Value))
223+
doc, ok := result.Value[0].(bson.D)
224+
require.True(t, ok)
225+
val := getDocField(doc, "val")
226+
require.Equal(t, int32(123), val)
227+
228+
// NumberInt("456") should also work
229+
_, err = gc.Execute(ctx, dbName, `db.test.insertOne({val2: NumberInt("456")})`)
230+
require.NoError(t, err)
231+
232+
// NumberLong("1774250313") — from real user report
233+
_, err = gc.Execute(ctx, dbName, `db.test.insertOne({val3: NumberLong("1774250313")})`)
234+
require.NoError(t, err)
235+
})
236+
}

0 commit comments

Comments
 (0)