diff --git a/packages/@power-doctest/asciidoctor/test/snapshots/another-attribute/input.adoc b/packages/@power-doctest/asciidoctor/test/snapshots/another-attribute/input.adoc new file mode 100644 index 0000000..954e6e5 --- /dev/null +++ b/packages/@power-doctest/asciidoctor/test/snapshots/another-attribute/input.adoc @@ -0,0 +1,6 @@ +[doctest-state="disabled"] +[source,javascript] +---- +const str = "string"; +console.log(str); +---- diff --git a/packages/@power-doctest/asciidoctor/test/snapshots/another-attribute/output.json b/packages/@power-doctest/asciidoctor/test/snapshots/another-attribute/output.json new file mode 100644 index 0000000..feeeb9e --- /dev/null +++ b/packages/@power-doctest/asciidoctor/test/snapshots/another-attribute/output.json @@ -0,0 +1,19 @@ +[ + { + "code": "const str = \"string\";\nconsole.log(str);", + "state": "disabled", + "location": { + "start": { + "line": 7, + "column": 0 + }, + "end": { + "line": 9, + "column": 0 + } + }, + "doctestOptions": { + "filePath": "input.adoc" + } + } +] \ No newline at end of file diff --git a/packages/@power-doctest/tester/src/index.ts b/packages/@power-doctest/tester/src/index.ts index c5b9448..822fb21 100644 --- a/packages/@power-doctest/tester/src/index.ts +++ b/packages/@power-doctest/tester/src/index.ts @@ -35,19 +35,32 @@ export interface PowerDoctestRunnerOptions { const CALLBACK_FUNCTION_NAME = "__power_doctest_runner_callback__"; -export function test(testOptions: ParsedCode): Promise { - return run(testOptions.code, testOptions.doctestOptions).catch(error => { +export interface testOptions { + // if it is true and Each testOptions.state is "none", run the test + // if it is false and Each testOptions.state is "none", do not run the test + // Default: false + disableRunning: boolean; +} + +export function test(parsedCode: ParsedCode, oprions?: testOptions): Promise { + if (parsedCode.state === "disabled") { + return Promise.resolve(); + } + if (oprions && oprions.disableRunning && parsedCode.state === "none") { + return Promise.resolve(); + } + return run(parsedCode.code, parsedCode.doctestOptions).catch(error => { // if it is expected error, resolve it - if (testOptions.expectedError && error.name === testOptions.expectedError) { + if (parsedCode.expectedError && error.name === parsedCode.expectedError) { return Promise.resolve(); } - const doctestOptions: PowerDoctestRunnerOptions | undefined = testOptions.doctestOptions; + const doctestOptions: PowerDoctestRunnerOptions | undefined = parsedCode.doctestOptions; error.fileName = doctestOptions && doctestOptions.filePath ? doctestOptions.filePath : error.fileName; - error.lineNumber = testOptions.location.start.line; - error.columnNumber = testOptions.location.start.column; - const metadata = testOptions.metadata; + error.lineNumber = parsedCode.location.start.line; + error.columnNumber = parsedCode.location.start.column; + const metadata = parsedCode.metadata; if (metadata) { error.meta = metadata; }