@@ -234,7 +234,7 @@ namespace ts {
234234 } ) ;
235235 assert . equal ( program2 . structureIsReused , StructureIsReused . Completely ) ;
236236 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" ) ) ;
238238 assert . equal ( program1Diagnostics . length , program2Diagnostics . length ) ;
239239 } ) ;
240240
@@ -245,7 +245,26 @@ namespace ts {
245245 } ) ;
246246 assert . equal ( program2 . structureIsReused , StructureIsReused . Completely ) ;
247247 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" ) ) ;
249268 assert . equal ( program1Diagnostics . length , program2Diagnostics . length ) ;
250269 } ) ;
251270
0 commit comments