@@ -116,7 +116,7 @@ describe('LLMObs Experiments — dataset + experiment run', () => {
116116 )
117117 } )
118118
119- it ( 'advances appended dataset versions from the current latest version ' , async ( ) => {
119+ it ( 'uses the dataset version from the mutation response ' , async ( ) => {
120120 const { client : c } = clientWithMockBackend ( )
121121 const dataset = Dataset . fromExisting ( c , 'demo' , '' , 'ds' , 'proj' , [ ] , 2 , 5 ) . addRecord ( 'a' )
122122
@@ -126,6 +126,27 @@ describe('LLMObs Experiments — dataset + experiment run', () => {
126126 assert . equal ( dataset . latestVersion ( ) , 3 )
127127 } )
128128
129+ it ( 'uses each mutation response version across consecutive pushes' , async ( ) => {
130+ const { client : c } = clientWithMockBackend ( )
131+ const versions = [ 7 , 11 , 19 ]
132+ c . batchUpdateDatasetRecords = async ( ) => ( { records : [ ] , version : versions . shift ( ) } )
133+ const dataset = Dataset . fromExisting ( c , 'demo' , '' , 'ds' , 'proj' , [ ] , 2 , 5 ) . addRecord ( 'before' )
134+
135+ await dataset . push ( )
136+ assert . equal ( dataset . version ( ) , 7 )
137+ assert . equal ( dataset . latestVersion ( ) , 7 )
138+
139+ dataset . update ( 0 , { input : 'after' } )
140+ await dataset . push ( )
141+ assert . equal ( dataset . version ( ) , 11 )
142+ assert . equal ( dataset . latestVersion ( ) , 11 )
143+
144+ dataset . delete ( 0 )
145+ await dataset . push ( )
146+ assert . equal ( dataset . version ( ) , 19 )
147+ assert . equal ( dataset . latestVersion ( ) , 19 )
148+ } )
149+
129150 it ( 'updates records added after a push and preserves concurrent edits' , async ( ) => {
130151 const { client : c , requests } = clientWithMockBackend ( )
131152 const dataset = new Dataset ( c , 'demo' ) . addRecord ( 'before' )
@@ -221,15 +242,15 @@ describe('LLMObs Experiments — dataset + experiment run', () => {
221242 assert . deepEqual ( requests . at ( - 1 ) . attributes . delete_records , [ insertRequest . attributes . insert_records [ 0 ] . id ] )
222243 } )
223244
224- it ( 'handles mutation responses without a version' , async ( ) => {
245+ it ( 'keeps the current version when a mutation response omits a version' , async ( ) => {
225246 const { client : c } = clientWithMockBackend ( )
226247 c . batchUpdateDatasetRecords = async ( ) => ( { records : [ ] } )
227248 const dataset = Dataset . fromExisting ( c , 'demo' , '' , 'ds' , 'proj' , [ ] , null , 5 ) . addRecord ( 'input' )
228249
229250 await dataset . push ( )
230251
231- assert . equal ( dataset . version ( ) , 6 )
232- assert . equal ( dataset . latestVersion ( ) , 6 )
252+ assert . equal ( dataset . version ( ) , null )
253+ assert . equal ( dataset . latestVersion ( ) , 5 )
233254
234255 const unknownVersionDataset = Dataset . fromExisting ( c , 'unknown' , '' , 'unknown-ds' , 'proj' , [ ] , null , 'unknown' )
235256 . addRecord ( 'input' )
0 commit comments