diff --git a/src/test/javascript.api.test.js b/src/test/javascript.api.test.js new file mode 100644 index 0000000..99bfec3 --- /dev/null +++ b/src/test/javascript.api.test.js @@ -0,0 +1,21 @@ +const PieceTreeTextBufferBuilder = require("../index").PieceTreeTextBufferBuilder; +const DefaultEndOfLine = require("../index").DefaultEndOfLine; + +describe('random tests', () => { + it('random insert delete', () => { + let pieceTreeTextBufferBuilder = new PieceTreeTextBufferBuilder(); + pieceTreeTextBufferBuilder.acceptChunk('abc\n'); + pieceTreeTextBufferBuilder.acceptChunk('def'); + let pieceTreeFactory = pieceTreeTextBufferBuilder.finish(true); + let pieceTree = pieceTreeFactory.create(DefaultEndOfLine.LF); + + expect(pieceTree.getLineCount()).toEqual(2); + expect(pieceTree.getLineContent(1)).toEqual('abc'); + expect(pieceTree.getLineContent(2)).toEqual('def'); + + pieceTree.insert(1, '+'); + expect(pieceTree.getLineCount()).toEqual(2); + expect(pieceTree.getLineContent(1)).toEqual('a+bc'); + expect(pieceTree.getLineContent(2)).toEqual('def'); + }); +}); diff --git a/tsconfig.json b/tsconfig.json index 348cb4f..712a5c9 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -5,6 +5,7 @@ "module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */ "declaration": true, /* Generates corresponding '.d.ts' file. */ "outDir": "./lib", /* Redirect output structure to the directory. */ + "preserveConstEnums": true, "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via */ } } \ No newline at end of file