From 84496672f9d4bb010f117158c9fb613ade5d06ea Mon Sep 17 00:00:00 2001 From: Lukas Spirig Date: Wed, 3 Mar 2021 13:01:33 +0100 Subject: [PATCH] fix(@angular-devkit/schematics): UpdateRecorder should support multiple adjacent inserts --- .../schematics/src/tree/recorder_spec.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/packages/angular_devkit/schematics/src/tree/recorder_spec.ts b/packages/angular_devkit/schematics/src/tree/recorder_spec.ts index 0840191ceb1c..a8ece64b62c0 100644 --- a/packages/angular_devkit/schematics/src/tree/recorder_spec.ts +++ b/packages/angular_devkit/schematics/src/tree/recorder_spec.ts @@ -30,6 +30,18 @@ describe('UpdateRecorderBase', () => { expect(result.toString()).toBe('Hello beautiful World'); }); + it('works with multiple adjacent inserts', () => { + const buffer = Buffer.from('Hello beautiful World'); + const entry = new SimpleFileEntry(normalize('/some/path'), buffer); + + const recorder = new UpdateRecorderBase(entry); + recorder.remove(6, 9); + recorder.insertRight(6, 'amazing'); + recorder.insertRight(15, ' and fantastic'); + const result = recorder.apply(buffer); + expect(result.toString()).toBe('Hello amazing and fantastic World'); + }); + it('can create the proper recorder', () => { const e = new SimpleFileEntry(normalize('/some/path'), Buffer.from('hello')); expect(UpdateRecorderBase.createFromFileEntry(e) instanceof UpdateRecorderBase).toBe(true);