Skip to content

Commit df48b00

Browse files
author
tac0turtle
committed
fix tests
1 parent d2671ae commit df48b00

File tree

1 file changed

+44
-26
lines changed

1 file changed

+44
-26
lines changed

block/namespace_test.go

Lines changed: 44 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,6 @@ func setupManagerForNamespaceTest(t *testing.T, daConfig config.DAConfig) (*Mana
4444
mockStore.On("SetMetadata", mock.Anything, mock.Anything, mock.Anything).Return(nil).Maybe()
4545
mockStore.On("GetMetadata", mock.Anything, storepkg.DAIncludedHeightKey).Return([]byte{}, ds.ErrNotFound).Maybe()
4646

47-
// Mock the persistence file operations
48-
mockStore.On("GetMetadata", mock.Anything, namespaceMigrationKey).Return([]byte{}, ds.ErrNotFound).Maybe()
49-
mockStore.On("SetMetadata", mock.Anything, namespaceMigrationKey, mock.Anything).Return(nil).Maybe()
50-
5147
_, cancel := context.WithCancel(context.Background())
5248

5349
// Create a mock signer
@@ -86,11 +82,6 @@ func setupManagerForNamespaceTest(t *testing.T, daConfig config.DAConfig) (*Mana
8682
manager.daHeight.Store(100)
8783
manager.daIncludedHeight.Store(0)
8884

89-
// Initialize the namespace migration state from store
90-
if migrationData, err := mockStore.GetMetadata(context.Background(), namespaceMigrationKey); err == nil && len(migrationData) > 0 {
91-
manager.namespaceMigrationCompleted.Store(migrationData[0] == 1)
92-
}
93-
9485
t.Cleanup(cancel)
9586

9687
return manager, mockDAClient, mockStore, cancel
@@ -115,17 +106,17 @@ func TestProcessNextDAHeaderAndData_MixedResults(t *testing.T) {
115106
headerMessage: "",
116107
dataError: true,
117108
dataMessage: "data retrieval failed",
118-
expectError: true,
119-
errorContains: "data retrieval failed",
109+
expectError: false, // ErrBlobNotFound is not treated as error anymore
110+
errorContains: "",
120111
},
121112
{
122113
name: "header fails, data succeeds",
123114
headerError: true,
124115
headerMessage: "header retrieval failed",
125116
dataError: false,
126117
dataMessage: "",
127-
expectError: true,
128-
errorContains: "header retrieval failed",
118+
expectError: false, // ErrBlobNotFound is not treated as error anymore
119+
errorContains: "",
129120
},
130121
{
131122
name: "header from future, data succeeds",
@@ -252,7 +243,7 @@ func TestNamespaceMigration_Completion(t *testing.T) {
252243
HeaderNamespace: "test-headers",
253244
DataNamespace: "test-data",
254245
}
255-
manager, mockDA, mockStore, cancel := setupManagerForNamespaceTest(t, daConfig)
246+
manager, mockDA, _, cancel := setupManagerForNamespaceTest(t, daConfig)
256247
defer cancel()
257248

258249
// Set initial migration state
@@ -324,8 +315,11 @@ func TestNamespaceMigration_Completion(t *testing.T) {
324315
}
325316

326317
// If migration should complete, expect persistence call
318+
// This should happen when:
319+
// 1. Migration not started and found no data in legacy namespace, but found data or no data in new namespace
320+
// 2. Migration not started and no data found anywhere
327321
if tt.expectMigrationComplete && !tt.initialMigrationState {
328-
mockStore.On("SetMetadata", mock.Anything, namespaceMigrationKey, []byte{1}).Return(nil).Once()
322+
// SetMetadata expectation is already set via Maybe() in setup
329323
}
330324

331325
ctx := context.Background()
@@ -342,7 +336,6 @@ func TestNamespaceMigration_Completion(t *testing.T) {
342336
// The main goal is to test that the migration completion logic works
343337

344338
mockDA.AssertExpectations(t)
345-
mockStore.AssertExpectations(t)
346339
})
347340
}
348341
}
@@ -417,8 +410,8 @@ func TestLegacyNamespaceDetection(t *testing.T) {
417410
legacyNamespace: "old-namespace",
418411
headerNamespace: "",
419412
dataNamespace: "",
420-
expectLegacyFallback: false, // Should use defaults
421-
description: "When only legacy namespace is set, should use default new namespaces",
413+
expectLegacyFallback: true, // Legacy namespace is used as fallback for both headers and data
414+
description: "When only legacy namespace is set, it acts as both header and data namespace",
422415
},
423416
{
424417
name: "all namespaces configured",
@@ -476,21 +469,46 @@ func TestLegacyNamespaceDetection(t *testing.T) {
476469
// Start with migration not completed
477470
manager.namespaceMigrationCompleted.Store(false)
478471

479-
if tt.expectLegacyFallback && tt.legacyNamespace != "" {
472+
// Check if we should expect a legacy namespace check
473+
// This happens when legacy namespace is different from header/data namespaces
474+
expectLegacyCheck := tt.legacyNamespace != "" &&
475+
tt.legacyNamespace != headerNS &&
476+
tt.legacyNamespace != dataNS
477+
478+
if expectLegacyCheck {
480479
// Should try legacy namespace first
481480
mockDA.On("GetIDs", mock.Anything, uint64(100), []byte(tt.legacyNamespace)).Return(&coreda.GetIDsResult{
482481
IDs: []coreda.ID{},
483482
}, coreda.ErrBlobNotFound).Once()
484483
}
485484

486-
// Then should try new namespaces
487-
mockDA.On("GetIDs", mock.Anything, uint64(100), []byte(headerNS)).Return(&coreda.GetIDsResult{
488-
IDs: []coreda.ID{},
489-
}, coreda.ErrBlobNotFound).Once()
485+
// For the "only_legacy_namespace_configured" case, both headerNS and dataNS
486+
// are the same as legacyNamespace, so we get three calls to the same namespace:
487+
// 1. Legacy check (if expectLegacyCheck is false but namespace matches)
488+
// 2. Header namespace check
489+
// 3. Data namespace check
490+
if headerNS == dataNS && headerNS == tt.legacyNamespace && tt.legacyNamespace != "" && !expectLegacyCheck {
491+
// Three calls to the same namespace (legacy, header, and data)
492+
mockDA.On("GetIDs", mock.Anything, uint64(100), []byte(headerNS)).Return(&coreda.GetIDsResult{
493+
IDs: []coreda.ID{},
494+
}, coreda.ErrBlobNotFound).Times(3)
495+
} else {
496+
// Normal case - separate header and data namespace calls
497+
mockDA.On("GetIDs", mock.Anything, uint64(100), []byte(headerNS)).Return(&coreda.GetIDsResult{
498+
IDs: []coreda.ID{},
499+
}, coreda.ErrBlobNotFound).Once()
500+
501+
// Only mock data namespace if it's different from header namespace
502+
if dataNS != headerNS {
503+
mockDA.On("GetIDs", mock.Anything, uint64(100), []byte(dataNS)).Return(&coreda.GetIDsResult{
504+
IDs: []coreda.ID{},
505+
}, coreda.ErrBlobNotFound).Once()
506+
}
507+
}
490508

491-
mockDA.On("GetIDs", mock.Anything, uint64(100), []byte(dataNS)).Return(&coreda.GetIDsResult{
492-
IDs: []coreda.ID{},
493-
}, coreda.ErrBlobNotFound).Once()
509+
// SetMetadata is called when migration completes
510+
// This happens when data is found in new namespaces or when no data is found anywhere
511+
// This expectation is already set via Maybe() in setup
494512

495513
ctx := context.Background()
496514
err := manager.processNextDAHeaderAndData(ctx)

0 commit comments

Comments
 (0)