Skip to content

Commit e7ea6c0

Browse files
devversionpkozlowski-opensource
authored andcommitted
test: add compliance generated output tests for output() (#54650)
This commit adds compliance tests for the new output APIs. PR Close #54650
1 parent aff65fd commit e7ea6c0

7 files changed

Lines changed: 42 additions & 12 deletions

File tree

packages/compiler-cli/test/compliance/test_cases/output_function/GOLDEN_PARTIAL.js

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,20 @@
11
/****************************************************************************************************
22
* PARTIAL FILE: output_in_directive.js
33
****************************************************************************************************/
4-
import { Directive, output } from '@angular/core';
4+
import { Directive, EventEmitter, output } from '@angular/core';
5+
import { outputFromObservable } from '@angular/core/rxjs-interop';
56
import * as i0 from "@angular/core";
67
export class TestDir {
78
constructor() {
89
this.a = output();
910
this.b = output({});
1011
this.c = output({ alias: 'cPublic' });
12+
this.d = outputFromObservable(new EventEmitter());
13+
this.e = outputFromObservable(new EventEmitter());
1114
}
1215
}
1316
TestDir.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "0.0.0-PLACEHOLDER", ngImport: i0, type: TestDir, deps: [], target: i0.ɵɵFactoryTarget.Directive });
14-
TestDir.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "0.0.0-PLACEHOLDER", type: TestDir, isStandalone: true, outputs: { a: "a", b: "b", c: "cPublic" }, ngImport: i0 });
17+
TestDir.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "0.0.0-PLACEHOLDER", type: TestDir, isStandalone: true, outputs: { a: "a", b: "b", c: "cPublic", d: "d", e: "e" }, ngImport: i0 });
1518
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "0.0.0-PLACEHOLDER", ngImport: i0, type: TestDir, decorators: [{
1619
type: Directive,
1720
args: [{
@@ -27,24 +30,29 @@ export declare class TestDir {
2730
a: import("@angular/core").OutputEmitterRef<void>;
2831
b: import("@angular/core").OutputEmitterRef<string>;
2932
c: import("@angular/core").OutputEmitterRef<void>;
33+
d: import("@angular/core").OutputRef<unknown>;
34+
e: import("@angular/core").OutputRef<unknown>;
3035
static ɵfac: i0.ɵɵFactoryDeclaration<TestDir, never>;
31-
static ɵdir: i0.ɵɵDirectiveDeclaration<TestDir, never, never, {}, { "a": "a"; "b": "b"; "c": "cPublic"; }, never, never, true, never>;
36+
static ɵdir: i0.ɵɵDirectiveDeclaration<TestDir, never, never, {}, { "a": "a"; "b": "b"; "c": "cPublic"; "d": "d"; "e": "e"; }, never, never, true, never>;
3237
}
3338

3439
/****************************************************************************************************
3540
* PARTIAL FILE: output_in_component.js
3641
****************************************************************************************************/
37-
import { Component, output } from '@angular/core';
42+
import { Component, EventEmitter, output } from '@angular/core';
43+
import { outputFromObservable } from '@angular/core/rxjs-interop';
3844
import * as i0 from "@angular/core";
3945
export class TestComp {
4046
constructor() {
4147
this.a = output();
4248
this.b = output({});
4349
this.c = output({ alias: 'cPublic' });
50+
this.d = outputFromObservable(new EventEmitter());
51+
this.e = outputFromObservable(new EventEmitter());
4452
}
4553
}
4654
TestComp.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "0.0.0-PLACEHOLDER", ngImport: i0, type: TestComp, deps: [], target: i0.ɵɵFactoryTarget.Component });
47-
TestComp.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "0.0.0-PLACEHOLDER", type: TestComp, isStandalone: true, selector: "ng-component", outputs: { a: "a", b: "b", c: "cPublic" }, ngImport: i0, template: 'Works', isInline: true });
55+
TestComp.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "0.0.0-PLACEHOLDER", type: TestComp, isStandalone: true, selector: "ng-component", outputs: { a: "a", b: "b", c: "cPublic", d: "d", e: "e" }, ngImport: i0, template: 'Works', isInline: true });
4856
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "0.0.0-PLACEHOLDER", ngImport: i0, type: TestComp, decorators: [{
4957
type: Component,
5058
args: [{
@@ -61,27 +69,32 @@ export declare class TestComp {
6169
a: import("@angular/core").OutputEmitterRef<void>;
6270
b: import("@angular/core").OutputEmitterRef<string>;
6371
c: import("@angular/core").OutputEmitterRef<void>;
72+
d: import("@angular/core").OutputRef<unknown>;
73+
e: import("@angular/core").OutputRef<unknown>;
6474
static ɵfac: i0.ɵɵFactoryDeclaration<TestComp, never>;
65-
static ɵcmp: i0.ɵɵComponentDeclaration<TestComp, "ng-component", never, {}, { "a": "a"; "b": "b"; "c": "cPublic"; }, never, never, true, never>;
75+
static ɵcmp: i0.ɵɵComponentDeclaration<TestComp, "ng-component", never, {}, { "a": "a"; "b": "b"; "c": "cPublic"; "d": "d"; "e": "e"; }, never, never, true, never>;
6676
}
6777

6878
/****************************************************************************************************
6979
* PARTIAL FILE: mixed_variants.js
7080
****************************************************************************************************/
7181
import { Directive, EventEmitter, Output, output } from '@angular/core';
82+
import { outputFromObservable } from '@angular/core/rxjs-interop';
7283
import * as i0 from "@angular/core";
7384
export class TestDir {
7485
constructor() {
7586
this.click1 = output();
7687
this.click2 = output();
88+
this.click3 = outputFromObservable(new EventEmitter());
7789
this._bla = output({ alias: 'decoratorPublicName' });
90+
this._bla2 = outputFromObservable(new EventEmitter(), { alias: 'decoratorPublicName2' });
7891
this.clickDecorator1 = new EventEmitter();
7992
this.clickDecorator2 = new EventEmitter();
8093
this._blaDecorator = new EventEmitter();
8194
}
8295
}
8396
TestDir.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "0.0.0-PLACEHOLDER", ngImport: i0, type: TestDir, deps: [], target: i0.ɵɵFactoryTarget.Directive });
84-
TestDir.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "0.0.0-PLACEHOLDER", type: TestDir, isStandalone: true, outputs: { click1: "click1", click2: "click2", _bla: "decoratorPublicName", clickDecorator1: "clickDecorator1", clickDecorator2: "clickDecorator2", _blaDecorator: "decoratorPublicName" }, ngImport: i0 });
97+
TestDir.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "0.0.0-PLACEHOLDER", type: TestDir, isStandalone: true, outputs: { click1: "click1", click2: "click2", click3: "click3", _bla: "decoratorPublicName", _bla2: "decoratorPublicName2", clickDecorator1: "clickDecorator1", clickDecorator2: "clickDecorator2", _blaDecorator: "decoratorPublicName" }, ngImport: i0 });
8598
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "0.0.0-PLACEHOLDER", ngImport: i0, type: TestDir, decorators: [{
8699
type: Directive,
87100
args: [{
@@ -104,11 +117,13 @@ import * as i0 from "@angular/core";
104117
export declare class TestDir {
105118
click1: import("@angular/core").OutputEmitterRef<void>;
106119
click2: import("@angular/core").OutputEmitterRef<boolean>;
120+
click3: import("@angular/core").OutputRef<unknown>;
107121
_bla: import("@angular/core").OutputEmitterRef<void>;
122+
_bla2: import("@angular/core").OutputRef<unknown>;
108123
clickDecorator1: EventEmitter<any>;
109124
clickDecorator2: EventEmitter<boolean>;
110125
_blaDecorator: EventEmitter<void>;
111126
static ɵfac: i0.ɵɵFactoryDeclaration<TestDir, never>;
112-
static ɵdir: i0.ɵɵDirectiveDeclaration<TestDir, never, never, {}, { "click1": "click1"; "click2": "click2"; "_bla": "decoratorPublicName"; "clickDecorator1": "clickDecorator1"; "clickDecorator2": "clickDecorator2"; "_blaDecorator": "decoratorPublicName"; }, never, never, true, never>;
127+
static ɵdir: i0.ɵɵDirectiveDeclaration<TestDir, never, never, {}, { "click1": "click1"; "click2": "click2"; "click3": "click3"; "_bla": "decoratorPublicName"; "_bla2": "decoratorPublicName2"; "clickDecorator1": "clickDecorator1"; "clickDecorator2": "clickDecorator2"; "_blaDecorator": "decoratorPublicName"; }, never, never, true, never>;
113128
}
114129

packages/compiler-cli/test/compliance/test_cases/output_function/mixed_variants.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@ TestDir.ɵdir = /* @__PURE__ */ $r3$.ɵɵdefineDirective({
33
outputs: {
44
click1: "click1",
55
click2: "click2",
6+
click3: "click3",
67
_bla: "decoratorPublicName",
8+
_bla2: "decoratorPublicName2",
79
clickDecorator1: "clickDecorator1",
810
clickDecorator2: "clickDecorator2",
911
_blaDecorator: "decoratorPublicName"

packages/compiler-cli/test/compliance/test_cases/output_function/mixed_variants.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
import {Directive, EventEmitter, Output, output} from '@angular/core';
2+
import {outputFromObservable} from '@angular/core/rxjs-interop';
23

34
@Directive({
45
standalone: true,
56
})
67
export class TestDir {
78
click1 = output();
89
click2 = output<boolean>();
10+
click3 = outputFromObservable(new EventEmitter<number>());
911
_bla = output<void>({alias: 'decoratorPublicName'});
12+
_bla2 = outputFromObservable(new EventEmitter(), {alias: 'decoratorPublicName2'});
1013

1114
@Output() clickDecorator1 = new EventEmitter();
1215
@Output() clickDecorator2 = new EventEmitter<boolean>();

packages/compiler-cli/test/compliance/test_cases/output_function/output_in_component.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@ TestComp.ɵcmp = /*@__PURE__*/ $r3$.ɵɵdefineComponent({
33
outputs: {
44
a: "a",
55
b: "b",
6-
c: "cPublic"
6+
c: "cPublic",
7+
d: "d",
8+
e: "e"
79
},
810
911
});

packages/compiler-cli/test/compliance/test_cases/output_function/output_in_component.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import {Component, output} from '@angular/core';
1+
import {Component, EventEmitter, output} from '@angular/core';
2+
import {outputFromObservable} from '@angular/core/rxjs-interop';
23

34
@Component({
45
standalone: true,
@@ -8,4 +9,6 @@ export class TestComp {
89
a = output();
910
b = output<string>({});
1011
c = output<void>({alias: 'cPublic'});
12+
d = outputFromObservable(new EventEmitter<string>());
13+
e = outputFromObservable(new EventEmitter<number>());
1114
}

packages/compiler-cli/test/compliance/test_cases/output_function/output_in_directive.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@ TestDir.ɵdir = /*@__PURE__*/ $r3$.ɵɵdefineDirective({
33
outputs: {
44
a: "a",
55
b: "b",
6-
c: "cPublic"
6+
c: "cPublic",
7+
d: "d",
8+
e: "e"
79
},
810
911
});
Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import {Directive, output} from '@angular/core';
1+
import {Directive, EventEmitter, output} from '@angular/core';
2+
import {outputFromObservable} from '@angular/core/rxjs-interop';
23

34
@Directive({
45
standalone: true,
@@ -7,4 +8,6 @@ export class TestDir {
78
a = output();
89
b = output<string>({});
910
c = output<void>({alias: 'cPublic'});
11+
d = outputFromObservable(new EventEmitter<string>());
12+
e = outputFromObservable(new EventEmitter<number>());
1013
}

0 commit comments

Comments
 (0)