From 97ea2c7bfd5e0419c46a718445a776850515d0ff Mon Sep 17 00:00:00 2001 From: Kristiyan Kostadinov Date: Fri, 27 Nov 2020 20:47:20 +0100 Subject: [PATCH] test(compiler-cli): migrate input/output compliance tests (#39867) Migrates the `r3_view_compiler_input_outputs` compliance tests to the new format. PR Close #39867 --- .../GOLDEN_PARTIAL.js | 99 +++++++++++++++++++ .../TEST_CASES.json | 39 ++++++++ .../component.ts | 14 +++ .../component_definition.js | 12 +++ .../directive.ts | 14 +++ .../directive_definition.js | 12 +++ 6 files changed, 190 insertions(+) create mode 100644 packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_input_outputs/GOLDEN_PARTIAL.js create mode 100644 packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_input_outputs/TEST_CASES.json create mode 100644 packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_input_outputs/component.ts create mode 100644 packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_input_outputs/component_definition.js create mode 100644 packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_input_outputs/directive.ts create mode 100644 packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_input_outputs/directive_definition.js diff --git a/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_input_outputs/GOLDEN_PARTIAL.js b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_input_outputs/GOLDEN_PARTIAL.js new file mode 100644 index 0000000000..630432f8a7 --- /dev/null +++ b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_input_outputs/GOLDEN_PARTIAL.js @@ -0,0 +1,99 @@ +/**************************************************************************************************** + * PARTIAL FILE: component.js + ****************************************************************************************************/ +import { Component, Input, NgModule, Output } from '@angular/core'; +import * as i0 from "@angular/core"; +export class MyComponent { +} +MyComponent.ɵfac = function MyComponent_Factory(t) { return new (t || MyComponent)(); }; +MyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ version: 1, type: MyComponent, selector: "my-component", inputs: { componentInput: "componentInput", originalComponentInput: ["renamedComponentInput", "originalComponentInput"] }, outputs: { componentOutput: "componentOutput", originalComponentOutput: "renamedComponentOutput" }, ngImport: i0, template: { source: '', isInline: true } }); +/*@__PURE__*/ (function () { i0.ɵsetClassMetadata(MyComponent, [{ + type: Component, + args: [{ selector: 'my-component', template: '' }] + }], null, { componentInput: [{ + type: Input + }], originalComponentInput: [{ + type: Input, + args: ['renamedComponentInput'] + }], componentOutput: [{ + type: Output + }], originalComponentOutput: [{ + type: Output, + args: ['renamedComponentOutput'] + }] }); })(); +export class MyModule { +} +MyModule.ɵmod = i0.ɵɵdefineNgModule({ type: MyModule }); +MyModule.ɵinj = i0.ɵɵdefineInjector({ factory: function MyModule_Factory(t) { return new (t || MyModule)(); } }); +(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [MyComponent] }); })(); +/*@__PURE__*/ (function () { i0.ɵsetClassMetadata(MyModule, [{ + type: NgModule, + args: [{ declarations: [MyComponent] }] + }], null, null); })(); + +/**************************************************************************************************** + * PARTIAL FILE: component.d.ts + ****************************************************************************************************/ +import * as i0 from "@angular/core"; +export declare class MyComponent { + componentInput: any; + originalComponentInput: any; + componentOutput: any; + originalComponentOutput: any; + static ɵfac: i0.ɵɵFactoryDef; + static ɵcmp: i0.ɵɵComponentDefWithMeta; +} +export declare class MyModule { + static ɵmod: i0.ɵɵNgModuleDefWithMeta; + static ɵinj: i0.ɵɵInjectorDef; +} + +/**************************************************************************************************** + * PARTIAL FILE: directive.js + ****************************************************************************************************/ +import { Directive, Input, NgModule, Output } from '@angular/core'; +import * as i0 from "@angular/core"; +export class MyDirective { +} +MyDirective.ɵfac = function MyDirective_Factory(t) { return new (t || MyDirective)(); }; +MyDirective.ɵdir = i0.ɵɵngDeclareDirective({ version: 1, type: MyDirective, selector: "[my-directive]", inputs: { directiveInput: "directiveInput", originalDirectiveInput: ["renamedDirectiveInput", "originalDirectiveInput"] }, outputs: { directiveOutput: "directiveOutput", originalDirectiveOutput: "renamedDirectiveOutput" }, ngImport: i0 }); +/*@__PURE__*/ (function () { i0.ɵsetClassMetadata(MyDirective, [{ + type: Directive, + args: [{ selector: '[my-directive]' }] + }], null, { directiveInput: [{ + type: Input + }], originalDirectiveInput: [{ + type: Input, + args: ['renamedDirectiveInput'] + }], directiveOutput: [{ + type: Output + }], originalDirectiveOutput: [{ + type: Output, + args: ['renamedDirectiveOutput'] + }] }); })(); +export class MyModule { +} +MyModule.ɵmod = i0.ɵɵdefineNgModule({ type: MyModule }); +MyModule.ɵinj = i0.ɵɵdefineInjector({ factory: function MyModule_Factory(t) { return new (t || MyModule)(); } }); +(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MyModule, { declarations: [MyDirective] }); })(); +/*@__PURE__*/ (function () { i0.ɵsetClassMetadata(MyModule, [{ + type: NgModule, + args: [{ declarations: [MyDirective] }] + }], null, null); })(); + +/**************************************************************************************************** + * PARTIAL FILE: directive.d.ts + ****************************************************************************************************/ +import * as i0 from "@angular/core"; +export declare class MyDirective { + directiveInput: any; + originalDirectiveInput: any; + directiveOutput: any; + originalDirectiveOutput: any; + static ɵfac: i0.ɵɵFactoryDef; + static ɵdir: i0.ɵɵDirectiveDefWithMeta; +} +export declare class MyModule { + static ɵmod: i0.ɵɵNgModuleDefWithMeta; + static ɵinj: i0.ɵɵInjectorDef; +} diff --git a/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_input_outputs/TEST_CASES.json b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_input_outputs/TEST_CASES.json new file mode 100644 index 0000000000..06b295846f --- /dev/null +++ b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_input_outputs/TEST_CASES.json @@ -0,0 +1,39 @@ +{ + "$schema": "../test_case_schema.json", + "cases": [ + { + "description": "should declare inputs/outputs on a component", + "inputFiles": [ + "component.ts" + ], + "expectations": [ + { + "files": [ + { + "expected": "component_definition.js", + "generated": "component.js" + } + ], + "failureMessage": "Incorrect component definition" + } + ] + }, + { + "description": "should declare inputs/outputs on a directive", + "inputFiles": [ + "directive.ts" + ], + "expectations": [ + { + "files": [ + { + "expected": "directive_definition.js", + "generated": "directive.js" + } + ], + "failureMessage": "Incorrect directive definition" + } + ] + } + ] +} diff --git a/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_input_outputs/component.ts b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_input_outputs/component.ts new file mode 100644 index 0000000000..8601c42097 --- /dev/null +++ b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_input_outputs/component.ts @@ -0,0 +1,14 @@ +import {Component, Input, NgModule, Output} from '@angular/core'; + +@Component({selector: 'my-component', template: ''}) +export class MyComponent { + @Input() componentInput: any; + @Input('renamedComponentInput') originalComponentInput: any; + + @Output() componentOutput: any; + @Output('renamedComponentOutput') originalComponentOutput: any; +} + +@NgModule({declarations: [MyComponent]}) +export class MyModule { +} diff --git a/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_input_outputs/component_definition.js b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_input_outputs/component_definition.js new file mode 100644 index 0000000000..219e68d774 --- /dev/null +++ b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_input_outputs/component_definition.js @@ -0,0 +1,12 @@ +MyComponent.ɵcmp = $r3$.ɵɵdefineComponent({ + … + inputs:{ + componentInput: "componentInput", + originalComponentInput: ["renamedComponentInput", "originalComponentInput"] + }, + outputs: { + componentOutput: "componentOutput", + originalComponentOutput: "renamedComponentOutput" + } + … +}); diff --git a/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_input_outputs/directive.ts b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_input_outputs/directive.ts new file mode 100644 index 0000000000..2543772114 --- /dev/null +++ b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_input_outputs/directive.ts @@ -0,0 +1,14 @@ +import {Directive, Input, NgModule, Output} from '@angular/core'; + +@Directive({selector: '[my-directive]'}) +export class MyDirective { + @Input() directiveInput: any; + @Input('renamedDirectiveInput') originalDirectiveInput: any; + + @Output() directiveOutput: any; + @Output('renamedDirectiveOutput') originalDirectiveOutput: any; +} + +@NgModule({declarations: [MyDirective]}) +export class MyModule { +} diff --git a/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_input_outputs/directive_definition.js b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_input_outputs/directive_definition.js new file mode 100644 index 0000000000..3a39d1a500 --- /dev/null +++ b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_input_outputs/directive_definition.js @@ -0,0 +1,12 @@ +MyDirective.ɵdir = $r3$.ɵɵdefineDirective({ + … + inputs:{ + directiveInput: "directiveInput", + originalDirectiveInput: ["renamedDirectiveInput", "originalDirectiveInput"] + }, + outputs: { + directiveOutput: "directiveOutput", + originalDirectiveOutput: "renamedDirectiveOutput" + } + … +});