@@ -240,14 +240,14 @@ describe("copyTableBatch", () => {
240240describe ( "fetchValidActionIds" , ( ) => {
241241 it ( "should return empty set when no actions found" , async ( ) => {
242242 const sourceDB = createMockDB ( { selectResults : [ [ ] ] } ) ;
243- const result = await fetchValidActionIds ( sourceDB , 1 , ( ) => { } ) ;
243+ const result = await fetchValidActionIds ( sourceDB , 1 , 0 , ( ) => { } ) ;
244244
245245 assert . strictEqual ( result . size , 0 ) ;
246246 } ) ;
247247
248248 it ( "should query matomo_log_link_visit_action with correct columns" , async ( ) => {
249249 const sourceDB = createMockDB ( { selectResults : [ [ ] ] } ) ;
250- await fetchValidActionIds ( sourceDB , 1 , ( ) => { } ) ;
250+ await fetchValidActionIds ( sourceDB , 1 , 0 , ( ) => { } ) ;
251251
252252 assert . deepStrictEqual ( sourceDB . _calls . selectFrom , [
253253 "matomo_log_link_visit_action" ,
@@ -262,7 +262,7 @@ describe("fetchValidActionIds", () => {
262262
263263 it ( "should apply idsite and date filters" , async ( ) => {
264264 const sourceDB = createMockDB ( { selectResults : [ [ ] ] } ) ;
265- await fetchValidActionIds ( sourceDB , 42 , ( ) => { } ) ;
265+ await fetchValidActionIds ( sourceDB , 42 , 0 , ( ) => { } ) ;
266266
267267 // Check idsite filter
268268 assert . deepStrictEqual ( sourceDB . _calls . where [ 0 ] , [ "idsite" , "=" , 42 ] ) ;
@@ -273,7 +273,7 @@ describe("fetchValidActionIds", () => {
273273
274274 it ( "should use pagination with limit and offset" , async ( ) => {
275275 const sourceDB = createMockDB ( { selectResults : [ [ ] ] } ) ;
276- await fetchValidActionIds ( sourceDB , 1 , ( ) => { } ) ;
276+ await fetchValidActionIds ( sourceDB , 1 , 0 , ( ) => { } ) ;
277277
278278 assert . deepStrictEqual ( sourceDB . _calls . limit , [ 1000 ] ) ;
279279 assert . deepStrictEqual ( sourceDB . _calls . offset , [ 0 ] ) ;
@@ -291,14 +291,34 @@ describe("fetchValidActionIds", () => {
291291 ] ,
292292 } ) ;
293293
294- const result = await fetchValidActionIds ( sourceDB , 1 , ( ) => { } ) ;
294+ const result = await fetchValidActionIds ( sourceDB , 1 , 0 , ( ) => { } ) ;
295295
296296 assert . strictEqual ( result . size , 4 ) ;
297297 assert . ok ( result . has ( 1 ) ) ;
298298 assert . ok ( result . has ( 2 ) ) ;
299299 assert . ok ( result . has ( 3 ) ) ;
300300 assert . ok ( result . has ( 4 ) ) ;
301301 } ) ;
302+
303+ it ( "should only collect action IDs greater than lastActionId" , async ( ) => {
304+ const sourceDB = createMockDB ( {
305+ selectResults : [
306+ [
307+ { idaction_name : 5 , idaction_url : 10 } ,
308+ { idaction_name : 3 , idaction_url : 15 } ,
309+ ] ,
310+ [ ] ,
311+ ] ,
312+ } ) ;
313+
314+ const result = await fetchValidActionIds ( sourceDB , 1 , 8 , ( ) => { } ) ;
315+
316+ assert . strictEqual ( result . size , 2 ) ;
317+ assert . ok ( result . has ( 10 ) ) ;
318+ assert . ok ( result . has ( 15 ) ) ;
319+ assert . ok ( ! result . has ( 5 ) ) ;
320+ assert . ok ( ! result . has ( 3 ) ) ;
321+ } ) ;
302322} ) ;
303323
304324describe ( "copyActions" , ( ) => {
0 commit comments