summaryrefslogtreecommitdiff
path: root/tests/testdata/bundle/decorators
diff options
context:
space:
mode:
authorMatt Mastracci <matthew@mastracci.com>2024-02-10 13:22:13 -0700
committerGitHub <noreply@github.com>2024-02-10 20:22:13 +0000
commitf5e46c9bf2f50d66a953fa133161fc829cecff06 (patch)
tree8faf2f5831c1c7b11d842cd9908d141082c869a5 /tests/testdata/bundle/decorators
parentd2477f780630a812bfd65e3987b70c0d309385bb (diff)
chore: move cli/tests/ -> tests/ (#22369)
This looks like a massive PR, but it's only a move from cli/tests -> tests, and updates of relative paths for files. This is the first step towards aggregate all of the integration test files under tests/, which will lead to a set of integration tests that can run without the CLI binary being built. While we could leave these tests under `cli`, it would require us to keep a more complex directory structure for the various test runners. In addition, we have a lot of complexity to ignore various test files in the `cli` project itself (cargo publish exclusion rules, autotests = false, etc). And finally, the `tests/` folder will eventually house the `test_ffi`, `test_napi` and other testing code, reducing the size of the root repo directory. For easier review, the extremely large and noisy "move" is in the first commit (with no changes -- just a move), while the remainder of the changes to actual files is in the second commit.
Diffstat (limited to 'tests/testdata/bundle/decorators')
-rw-r--r--tests/testdata/bundle/decorators/ts_decorators.out49
-rw-r--r--tests/testdata/bundle/decorators/ts_decorators.ts25
2 files changed, 74 insertions, 0 deletions
diff --git a/tests/testdata/bundle/decorators/ts_decorators.out b/tests/testdata/bundle/decorators/ts_decorators.out
new file mode 100644
index 000000000..e988aadd3
--- /dev/null
+++ b/tests/testdata/bundle/decorators/ts_decorators.out
@@ -0,0 +1,49 @@
+[WILDCARD]
+// deno-fmt-ignore-file
+// deno-lint-ignore-file
+// This code was bundled using `deno bundle` and it's not recommended to edit it manually
+
+function _ts_decorate(decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+}
+function a() {
+ console.log("a(): evaluated");
+ return (_target, _propertyKey, _descriptor)=>{
+ console.log("a(): called");
+ };
+}
+class B {
+ method() {
+ console.log("method");
+ }
+}
+_ts_decorate([
+ a()
+], B.prototype, "method", null);
+function _ts_decorate1(decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+}
+function Decorator() {
+ return function(target, propertyKey, descriptor) {
+ const originalFn = descriptor.value;
+ descriptor.value = async function(...args) {
+ return await originalFn.apply(this, args);
+ };
+ return descriptor;
+ };
+}
+class SomeClass {
+ async test() {}
+}
+_ts_decorate1([
+ Decorator()
+], SomeClass.prototype, "test", null);
+new SomeClass().test();
+new B().method();
+[WILDCARD] \ No newline at end of file
diff --git a/tests/testdata/bundle/decorators/ts_decorators.ts b/tests/testdata/bundle/decorators/ts_decorators.ts
new file mode 100644
index 000000000..61299bccf
--- /dev/null
+++ b/tests/testdata/bundle/decorators/ts_decorators.ts
@@ -0,0 +1,25 @@
+// deno-lint-ignore-file
+
+import { B } from "../../subdir/more_decorators.ts";
+
+function Decorator() {
+ return function (
+ target: Record<string, any>,
+ propertyKey: string,
+ descriptor: TypedPropertyDescriptor<any>,
+ ) {
+ const originalFn: Function = descriptor.value as Function;
+ descriptor.value = async function (...args: any[]) {
+ return await originalFn.apply(this, args);
+ };
+ return descriptor;
+ };
+}
+
+class SomeClass {
+ @Decorator()
+ async test() {}
+}
+
+new SomeClass().test();
+new B().method();