@@ -234,7 +234,7 @@ namespace ts {
234
234
} ) ;
235
235
assert . equal ( program2 . structureIsReused , StructureIsReused . Completely ) ;
236
236
const program1Diagnostics = program1 . getSemanticDiagnostics ( program1 . getSourceFile ( "a.ts" ) ) ;
237
- const program2Diagnostics = program2 . getSemanticDiagnostics ( program1 . getSourceFile ( "a.ts" ) ) ;
237
+ const program2Diagnostics = program2 . getSemanticDiagnostics ( program2 . getSourceFile ( "a.ts" ) ) ;
238
238
assert . equal ( program1Diagnostics . length , program2Diagnostics . length ) ;
239
239
} ) ;
240
240
@@ -245,7 +245,26 @@ namespace ts {
245
245
} ) ;
246
246
assert . equal ( program2 . structureIsReused , StructureIsReused . Completely ) ;
247
247
const program1Diagnostics = program1 . getSemanticDiagnostics ( program1 . getSourceFile ( "a.ts" ) ) ;
248
- const program2Diagnostics = program2 . getSemanticDiagnostics ( program1 . getSourceFile ( "a.ts" ) ) ;
248
+ const program2Diagnostics = program2 . getSemanticDiagnostics ( program2 . getSourceFile ( "a.ts" ) ) ;
249
+ assert . equal ( program1Diagnostics . length , program2Diagnostics . length ) ;
250
+ } ) ;
251
+
252
+ it ( "successful if change affects a single module of a package" , ( ) => {
253
+ const files = [
254
+ { name : "/a.ts" , text : SourceText . New ( "" , "import {b} from 'b'" , "var a = b;" ) } ,
255
+ { name : "/node_modules/b/index.d.ts" , text : SourceText . New ( "" , "export * from './internal';" , "" ) } ,
256
+ { name : "/node_modules/b/internal.d.ts" , text : SourceText . New ( "" , "" , "export const b = 1;" ) } ,
257
+ { name : "/node_modules/b/package.json" , text : SourceText . New ( "" , "" , JSON . stringify ( { name : "b" , version : "1.2.3" } ) ) } ,
258
+ ] ;
259
+
260
+ const options : CompilerOptions = { target, moduleResolution : ModuleResolutionKind . NodeJs } ;
261
+ const program1 = newProgram ( files , [ "/a.ts" ] , options ) ;
262
+ const program2 = updateProgram ( program1 , [ "/a.ts" ] , options , files => {
263
+ files [ 2 ] . text = files [ 2 ] . text . updateProgram ( "export const b = 2;" ) ;
264
+ } ) ;
265
+ assert . equal ( program2 . structureIsReused , StructureIsReused . Completely ) ;
266
+ const program1Diagnostics = program1 . getSemanticDiagnostics ( program1 . getSourceFile ( "a.ts" ) ) ;
267
+ const program2Diagnostics = program2 . getSemanticDiagnostics ( program2 . getSourceFile ( "a.ts" ) ) ;
249
268
assert . equal ( program1Diagnostics . length , program2Diagnostics . length ) ;
250
269
} ) ;
251
270
0 commit comments