Skip to content
Merged
Show file tree
Hide file tree
Changes from 12 commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
5cde83b
test(angular): add ng19 test app
brandyscarney Nov 25, 2024
4adbc8e
chore(angular): add test app to CI workflows
brandyscarney Nov 25, 2024
53e2dca
docs(angular): add missing step for running a test app
brandyscarney Nov 25, 2024
5b8ab33
add back polyfills
brandyscarney Nov 25, 2024
ca62104
server fixes
brandyscarney Nov 25, 2024
4725dfc
test(angular): lint
brandyscarney Nov 25, 2024
33396fd
test(angular): update angular config
brandyscarney Nov 26, 2024
0e9f3b9
test(angular): config changes
brandyscarney Nov 26, 2024
47b69c9
test(angular): move common e2e flies
brandyscarney Nov 26, 2024
87b4d1b
test(angular): update version test
brandyscarney Nov 26, 2024
655cbdd
test(angular): remove and update duplicated test files
brandyscarney Nov 26, 2024
8b31ce5
test(angular): lint
brandyscarney Nov 26, 2024
6aacb4a
test(angular): move duplicate files
brandyscarney Nov 26, 2024
803515f
test(angular): update app module
brandyscarney Nov 26, 2024
ed76218
test(angular): add back standalone true for backwards compat
brandyscarney Nov 26, 2024
a34e5c0
docs(angular): clarify process for adding new test app
brandyscarney Nov 27, 2024
c002219
test(angular): update so all versions pass lint
brandyscarney Nov 27, 2024
c6167c4
test(angular): only update the OnInit changes
brandyscarney Nov 27, 2024
f9b18fa
test(angular): update ng19 for ssr
brandyscarney Nov 27, 2024
30379cf
test(angular): update eslint to latest
brandyscarney Dec 2, 2024
668d00a
test(angular): ignore prefer standalone
brandyscarney Dec 3, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ jobs:
strategy:
fail-fast: false
matrix:
apps: [ng16, ng17, ng18]
apps: [ng16, ng17, ng18, ng19]
needs: [build-angular, build-angular-server]
runs-on: ubuntu-latest
steps:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/stencil-nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ jobs:
strategy:
fail-fast: false
matrix:
apps: [ng16, ng17, ng18]
apps: [ng16, ng17, ng18, ng19]
needs: [build-angular, build-angular-server]
runs-on: ubuntu-latest
steps:
Expand Down
12 changes: 7 additions & 5 deletions docs/angular/testing.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,13 @@ Ionic Framework supports multiple versions of Angular. As a result, we need to v

The Angular test app supports syncing your locally built changes for validation.

1. Build the `core` and `packages/angular` directories using `npm run build`.
2. [Build the Angular test app](#test-app-build-structure).
3. Navigate to the built test app directory (e.g. `packages/angular/test/build/ng14`).
4. Install dependencies using `npm install`.
5. Sync your local changes using `npm run sync`.
1. Build the `core` directory.
2. Navigate to `packages/angular` and run `npm run sync`.
3. Build `packages/angular` using `npm run build`.
4. [Build the Angular test app](#test-app-build-structure).
5. Navigate to the built test app directory (e.g. `packages/angular/test/build/ng14`).
6. Install dependencies using `npm install`.
7. Sync your local changes using `npm run sync`.

From here you can either build the application or start a local dev server. When re-syncing changes, you will need to [wipe or disable the application cache](#application-cache).

Expand Down
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These files were moved to base/ as they are all the same between versions

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

139 changes: 139 additions & 0 deletions packages/angular/test/apps/ng19/angular.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1,
"newProjectRoot": "projects",
"projects": {
"test-app": {
"root": "",
"sourceRoot": "src",
"projectType": "application",
"prefix": "app",
"schematics": {},
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "dist/test-app",
"index": "src/index.html",
"main": "src/main.ts",
"polyfills": ["src/polyfills.ts"],
"tsConfig": "tsconfig.app.json",
"assets": [
"src/favicon.ico",
{
"glob": "**/*",
"input": "src/assets",
"output": "assets"
},
{
"glob": "**/*.svg",
"input": "node_modules/ionicons/dist/ionicons/svg",
"output": "./svg"
}
],
"styles": ["src/styles.css"],
"scripts": []
},
"configurations": {
"production": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
],
"optimization": true,
"outputHashing": "all",
"sourceMap": false,
"namedChunks": false,
"aot": true,
"progress": false,
"extractLicenses": true,
"budgets": [
{
"type": "initial",
"maximumWarning": "2mb",
"maximumError": "5mb"
},
{
"type": "anyComponentStyle",
"maximumWarning": "6kb"
}
]
},
"development": {
"optimization": false,
"extractLicenses": false,
"sourceMap": true,
"namedChunks": true
}
},
"defaultConfiguration": "production"
},
"server": {
"builder": "@angular-devkit/build-angular:server",
"options": {
"outputPath": "dist/test-app-server",
"main": "src/main.server.ts",
"tsConfig": "tsconfig.server.json"
},
"configurations": {
"production": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
]
}
}
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"buildTarget": "test-app:build"
},
"configurations": {
"production": {
"buildTarget": "test-app:build:production"
},
"development": {
"buildTarget": "test-app:build:development"
}
},
"defaultConfiguration": "development"
},
"prerender": {
"builder": "@nguniversal/builders:prerender",
"options": {
"buildTarget": "test-app:build:production",
"serverTarget": "test-app:server:production",
"routes": ["/"]
}
},
"extract-i18n": {
"builder": "@angular-devkit/build-angular:extract-i18n",
"options": {
"buildTarget": "test-app:build"
}
},
"lint": {
"builder": "@angular-eslint/builder:lint",
"options": {
"lintFilePatterns": [
"src/**/*.ts",
"src/**/*.html"
]
}
}
}
}
},
"cli": {
"schematicCollections": ["@angular-eslint/schematics"],
"cache": {
"enabled": false
},
"analytics": false
}
}
16 changes: 16 additions & 0 deletions packages/angular/test/apps/ng19/cypress.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import { defineConfig } from 'cypress'

export default defineConfig({
video: false,
screenshotOnRunFailure: false,
e2e: {
// We've imported your old cypress plugins here.
// You may want to clean this up later by importing these.
setupNodeEvents(on, config) {
return require('./cypress/plugins/index.js')(on, config)
},
specPattern: './e2e/**/*.spec.ts',
baseUrl: 'http://localhost:4200/',
excludeSpecPattern: '**/examples/*',
},
})
Empty file.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
it("should be on Angular 19", () => {
cy.visit('/lazy');

cy.get('ion-title').contains('Angular 19');
});
13 changes: 13 additions & 0 deletions packages/angular/test/apps/ng19/e2e/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/e2e",
"module": "commonjs",
"target": "es5",
"types": ["cypress", "node"]
},
"include": [
"../cypress/**/*.ts",
"../cypress/support/**/*.ts"
]
}
Loading
Loading