summaryrefslogtreecommitdiff
path: root/tests/specs/test/doc_duplicate_identifier
diff options
context:
space:
mode:
Diffstat (limited to 'tests/specs/test/doc_duplicate_identifier')
-rw-r--r--tests/specs/test/doc_duplicate_identifier/__test__.jsonc5
-rw-r--r--tests/specs/test/doc_duplicate_identifier/main.out11
-rw-r--r--tests/specs/test/doc_duplicate_identifier/main.ts33
-rw-r--r--tests/specs/test/doc_duplicate_identifier/mod.ts7
4 files changed, 56 insertions, 0 deletions
diff --git a/tests/specs/test/doc_duplicate_identifier/__test__.jsonc b/tests/specs/test/doc_duplicate_identifier/__test__.jsonc
new file mode 100644
index 000000000..2a8e6aafc
--- /dev/null
+++ b/tests/specs/test/doc_duplicate_identifier/__test__.jsonc
@@ -0,0 +1,5 @@
+{
+ "args": "test --doc --config ../../../config/deno.json main.ts",
+ "exitCode": 0,
+ "output": "main.out"
+}
diff --git a/tests/specs/test/doc_duplicate_identifier/main.out b/tests/specs/test/doc_duplicate_identifier/main.out
new file mode 100644
index 000000000..9196405a6
--- /dev/null
+++ b/tests/specs/test/doc_duplicate_identifier/main.out
@@ -0,0 +1,11 @@
+Check [WILDCARD]/main.ts
+Check [WILDCARD]/main.ts$11-19.ts
+Check [WILDCARD]/main.ts$25-30.ts
+running 0 tests from ./main.ts
+running 1 test from ./main.ts$11-19.ts
+[WILDCARD]/main.ts$11-19.ts ... ok ([WILDCARD]ms)
+running 1 test from ./main.ts$25-30.ts
+[WILDCARD]/main.ts$25-30.ts ... ok ([WILDCARD]ms)
+
+ok | 2 passed | 0 failed ([WILDCARD]ms)
+
diff --git a/tests/specs/test/doc_duplicate_identifier/main.ts b/tests/specs/test/doc_duplicate_identifier/main.ts
new file mode 100644
index 000000000..df78294d0
--- /dev/null
+++ b/tests/specs/test/doc_duplicate_identifier/main.ts
@@ -0,0 +1,33 @@
+// `deno test --doc` tries to convert the example code snippets into pseudo
+// test files in a way that all the exported items are available without
+// explicit import statements. Therefore, in the test code, you don't have to
+// write like `import { add } from "./main.ts";`.
+// However, this automatic import resolution might conflict with other
+// explicitly declared identifiers in the test code you write. This spec test
+// makes sure that such cases will not cause any issues - explicit identifiers
+// take precedence.
+
+/**
+ * ```ts
+ * import { assertEquals } from "@std/assert/equals";
+ * import { getModuleName, createFoo } from "./mod.ts";
+ *
+ * const foo = createFoo();
+ * assertEquals(getModuleName(), "mod.ts");
+ * assertEquals(add(1, 2), foo());
+ * ```
+ */
+export function add(a: number, b: number): number {
+ return a + b;
+}
+
+/**
+ * ```ts
+ * import { assertEquals } from "@std/assert/equals";
+ *
+ * assertEquals(getModuleName(), "main.ts");
+ * ```
+ */
+export const getModuleName = () => "main.ts";
+
+export let foo = 1234;
diff --git a/tests/specs/test/doc_duplicate_identifier/mod.ts b/tests/specs/test/doc_duplicate_identifier/mod.ts
new file mode 100644
index 000000000..c613a99ad
--- /dev/null
+++ b/tests/specs/test/doc_duplicate_identifier/mod.ts
@@ -0,0 +1,7 @@
+export function getModuleName() {
+ return "mod.ts";
+}
+
+export const createFoo = () => {
+ return () => 3;
+};