1. 'use strict';
    
  2. 
    
  3. const Sequencer = require('@jest/test-sequencer').default;
    
  4. 
    
  5. class CustomSequencer extends Sequencer {
    
  6.   sort(tests) {
    
  7.     if (process.env.CIRCLE_NODE_TOTAL) {
    
  8.       // In CI, parallelize tests across multiple tasks.
    
  9.       const nodeTotal = parseInt(process.env.CIRCLE_NODE_TOTAL, 10);
    
  10.       const nodeIndex = parseInt(process.env.CIRCLE_NODE_INDEX, 10);
    
  11.       tests = tests
    
  12.         .sort((a, b) => (a.path < b.path ? -1 : 1))
    
  13.         .filter((_, i) => i % nodeTotal === nodeIndex);
    
  14.     }
    
  15.     return tests;
    
  16.   }
    
  17. }
    
  18. 
    
  19. module.exports = CustomSequencer;