From b89e97bbe120ea40bd6e1576091e1e3342f88a53 Mon Sep 17 00:00:00 2001 From: Pascal Reitermann Date: Sun, 30 Apr 2023 23:26:13 +0200 Subject: [PATCH] Fix quoting issues of ArrayProcessor (#129) --- src/processor/array-processor.ts | 2 +- src/processor/block-processor.ts | 2 +- src/test/suite/processor/array-processor.test.ts | 13 +++++++++++++ src/test/suite/processor/block-processor.test.ts | 2 +- 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/processor/array-processor.ts b/src/processor/array-processor.ts index 0909a59..957097c 100644 --- a/src/processor/array-processor.ts +++ b/src/processor/array-processor.ts @@ -2,6 +2,6 @@ import { GenericProcessor } from "./generic-processor" export class ArrayProcessor extends GenericProcessor { constructor(text: string) { - super("array", /\[([^[]*)\]/g, text) + super("array", /(?<=:\s+)\[([^[]*)\]/g, text) } } diff --git a/src/processor/block-processor.ts b/src/processor/block-processor.ts index 8b6e2de..6fe928d 100644 --- a/src/processor/block-processor.ts +++ b/src/processor/block-processor.ts @@ -2,6 +2,6 @@ import { GenericProcessor } from "./generic-processor" export class BlockProcessor extends GenericProcessor { constructor(text: string) { - super("block", /(?!<)(?<=:\s)([|>])((?!:).|[\r\n])+/g, text) + super("block", /(?!<)(?<=:\s+)([|>])((?!:).|[\r\n])+/g, text) } } diff --git a/src/test/suite/processor/array-processor.test.ts b/src/test/suite/processor/array-processor.test.ts index 7dda157..1cb270a 100644 --- a/src/test/suite/processor/array-processor.test.ts +++ b/src/test/suite/processor/array-processor.test.ts @@ -12,4 +12,17 @@ suite("Test ArrayProcessor - preprocess()", () => { equal(arrayprocessor.store.size, 1) equal(arrayprocessor.store.get("vscode-yaml-sort.array.0"), "[ \"CMD\", \"pg_isready\", \"-q\", \"-d\", \"DB_NAME\", \"-U\", \"DB_USER\" ]") }) + + test("GitHub issue #129: False remove trailing quotes by Array Processor.", () => { + const textExamples = [ "section: '*[a]'", "section: *[a]", "section: '[a]'", "section: [a]"] + + textExamples.forEach(text => { + const arrayprocessor = new ArrayProcessor(text) + + arrayprocessor.preprocess() + arrayprocessor.postprocess() + + equal(arrayprocessor.text, text) + }) + }) }) \ No newline at end of file diff --git a/src/test/suite/processor/block-processor.test.ts b/src/test/suite/processor/block-processor.test.ts index 17e84d0..31a9a69 100644 --- a/src/test/suite/processor/block-processor.test.ts +++ b/src/test/suite/processor/block-processor.test.ts @@ -57,5 +57,5 @@ suite("Test BlockProcessor - preprocess()", () => { blockprocessor.preprocess() equal(blockprocessor.store.size, 0) - }) + }) })