File tree Expand file tree Collapse file tree 3 files changed +29
-1
lines changed
common/src/client/sync/stream Expand file tree Collapse file tree 3 files changed +29
-1
lines changed Original file line number Diff line number Diff line change
1
+ ---
2
+ ' @powersync/common ' : patch
3
+ ---
4
+
5
+ Rust sync client: Fix reported ` lastSyncedAt ` values in sync status.
Original file line number Diff line number Diff line change @@ -923,7 +923,7 @@ The next upload iteration will be delayed.`);
923
923
return {
924
924
priority : status . priority ,
925
925
hasSynced : status . has_synced ?? undefined ,
926
- lastSyncedAt : status ?. last_synced_at != null ? new Date ( status ! . last_synced_at ! ) : undefined
926
+ lastSyncedAt : status ?. last_synced_at != null ? new Date ( status ! . last_synced_at ! * 1000 ) : undefined
927
927
} ;
928
928
}
929
929
Original file line number Diff line number Diff line change @@ -112,6 +112,29 @@ function defineSyncTests(impl: SyncClientImplementation) {
112
112
connectionMethod : SyncStreamConnectionMethod . HTTP
113
113
} ;
114
114
115
+ mockSyncServiceTest ( 'sets last sync time' , async ( { syncService } ) => {
116
+ const db = await syncService . createDatabase ( ) ;
117
+ db . connect ( new TestConnector ( ) , options ) ;
118
+ await vi . waitFor ( ( ) => expect ( syncService . connectedListeners ) . toHaveLength ( 1 ) ) ;
119
+
120
+ syncService . pushLine ( {
121
+ checkpoint : {
122
+ last_op_id : '0' ,
123
+ buckets : [ ]
124
+ }
125
+ } ) ;
126
+ syncService . pushLine ( { checkpoint_complete : { last_op_id : '0' } } ) ;
127
+ const now = Date . now ( ) ;
128
+
129
+ await db . waitForFirstSync ( ) ;
130
+ const status = db . currentStatus ;
131
+ const lastSyncedAt = status . lastSyncedAt ! . getTime ( ) ;
132
+
133
+ // The reported time of the last sync should be close to the current time (5s is very generous already, but we've
134
+ // had an issue where dates weren't parsed correctly and we were off by decades).
135
+ expect ( Math . abs ( lastSyncedAt - now ) ) . toBeLessThan ( 5000 ) ;
136
+ } ) ;
137
+
115
138
describe ( 'reports progress' , ( ) => {
116
139
let lastOpId = 0 ;
117
140
You can’t perform that action at this time.
0 commit comments