@@ -17,6 +17,7 @@ import { join, relative } from 'path';
1717import { Position , SourceMapConsumer } from 'source-map' ;
1818import * as ts from 'typescript' ;
1919import { packages } from '../lib/packages' ;
20+ import { diff } from 'semver' ;
2021
2122const codeMap = require ( '../lib/istanbul-local' ) . codeMap ;
2223const Jasmine = require ( 'jasmine' ) ;
@@ -225,12 +226,15 @@ export default function (args: ParsedArgs, logger: logging.Logger) {
225226 const sha = branchRevList . find ( s => masterRevList . includes ( s ) ) ;
226227
227228 if ( sha ) {
228- const diffFiles = _exec (
229- 'git' ,
230- [ 'diff' , sha , 'HEAD' , '--name-only' ] ,
231- { } ,
232- logger ,
233- ) . trim ( ) . split ( '\n' ) ;
229+ const diffFiles = [
230+ // Get diff between $SHA and HEAD.
231+ ..._exec ( 'git' , [ 'diff' , sha , 'HEAD' , '--name-only' ] , { } , logger )
232+ . trim ( ) . split ( '\n' ) ,
233+ // And add the current status to it (so it takes the non-committed changes).
234+ ..._exec ( 'git' , [ 'status' , '--short' , '--show-stash' ] , { } , logger )
235+ . split ( '\n' ) . map ( x => x . slice ( 2 ) . trim ( ) ) ,
236+ ] . filter ( x => x !== '' ) ;
237+
234238 const diffPackages = new Set ( ) ;
235239 for ( const pkgName of Object . keys ( packages ) ) {
236240 const relativeRoot = relative ( projectBaseDir , packages [ pkgName ] . root ) ;
@@ -241,6 +245,10 @@ export default function (args: ParsedArgs, logger: logging.Logger) {
241245 }
242246 }
243247
248+ // Show the packages that we will test.
249+ logger . info ( `Found ${ diffPackages . size } packages:` ) ;
250+ logger . info ( JSON . stringify ( [ ...diffPackages ] , null , 2 ) ) ;
251+
244252 // Remove the tests from packages that haven't changed.
245253 tests = tests
246254 . filter ( p => Object . keys ( packages ) . some ( name => {
@@ -267,6 +275,10 @@ export default function (args: ParsedArgs, logger: logging.Logger) {
267275
268276 return new Promise ( resolve => {
269277 runner . onComplete ( ( passed : boolean ) => resolve ( passed ? 0 : 1 ) ) ;
270- runner . execute ( tests ) ;
278+ if ( args . seed != undefined ) {
279+ runner . seed ( args . seed ) ;
280+ }
281+
282+ runner . execute ( tests , args . filter ) ;
271283 } ) ;
272284}
0 commit comments