Skip to content

Commit e07fcf0

Browse files
authored
fix[angular-gen2]: add angular 19 ssr e2e and fix hydration errors (BuilderIO#3806)
## Description Fixes the hydration error thrown from angular for using ngComponentOutlet, adds angular-19-ssr to e2e and an example of how users can override fetch to use HTTP client from angular that should help in caching HTTP requests Jira https://builder-io.atlassian.net/browse/ENG-7946 https://builder-io.atlassian.net/browse/ENG-7945 https://builder-io.atlassian.net/browse/ENG-7665 _Screenshot_ If relevant, add a screenshot or two of the changes you made.
1 parent 89c1acb commit e07fcf0

File tree

154 files changed

+5368
-179
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

154 files changed

+5368
-179
lines changed

.changeset/strong-meals-fold.md

Lines changed: 5 additions & 0 deletions

.github/workflows/ci.yml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,9 @@ jobs:
7474
'nextjs-sdk-next-app',
7575
'vue',
7676
'nuxt',
77-
'angular',
78-
'angular-ssr',
77+
'angular-16',
78+
'angular-16-ssr',
79+
'angular-19-ssr',
7980
]
8081

8182
steps:
@@ -122,8 +123,8 @@ jobs:
122123
'vue',
123124
'nuxt',
124125
'react',
125-
'angular',
126-
'angular-ssr',
126+
'angular-16',
127+
'angular-16-ssr',
127128
'qwik-city',
128129
'nextjs-sdk-next-app',
129130
'react-sdk-next-14-app',

packages/sdks-tests/src/e2e-tests/angular-no-wrap.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ test.describe('Angular noWrap', () => {
4848
await testNoWrapPage(page);
4949
});
5050
test('correctly ssrs', async ({ browser, packageName }) => {
51-
test.skip(!['angular-ssr'].includes(packageName));
51+
test.skip(!['angular-16-ssr', 'angular-19-ssr'].includes(packageName));
5252

5353
const context = await browser.newContext({
5454
javaScriptEnabled: false,

packages/sdks-tests/src/e2e-tests/custom-components.spec.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,10 @@ test.describe('Custom components', () => {
4949
});
5050

5151
test('children content are ssred', async ({ browser, packageName }) => {
52-
test.skip(!['angular-ssr'].includes(packageName));
52+
test.skip(
53+
!['angular-16-ssr', 'angular-19-ssr'].includes(packageName),
54+
'Only run this for Angular SSR and Angular 19 SSR'
55+
);
5356

5457
const context = await browser.newContext({
5558
javaScriptEnabled: false,

packages/sdks-tests/src/e2e-tests/default-styles.spec.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,11 @@ test.describe('Default styles', () => {
1616
// dont have .builder-button class
1717
test.skip(excludeGen1(sdk));
1818
// TODO: need to check why angular-ssr is failing, working as expected though
19-
test.fail(packageName === 'react-native' || packageName === 'angular-ssr');
19+
test.fail(
20+
packageName === 'react-native' ||
21+
packageName === 'angular-16-ssr' ||
22+
packageName === 'angular-19-ssr'
23+
);
2024
await page.goto('/default-styles');
2125

2226
const allStyleTags = await page.evaluate(() => {

packages/sdks-tests/src/e2e-tests/hydration.spec.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,10 @@ test.describe('Hydration', () => {
2323
});
2424

2525
test('No mismatch on A/B test content', async ({ page, packageName }) => {
26-
test.skip(packageName === 'angular-ssr', 'Angular SSR does not support A/B tests');
26+
test.skip(
27+
packageName === 'angular-16-ssr' || packageName === 'angular-19-ssr',
28+
'Angular SSR does not support A/B tests'
29+
);
2730
await page.goto('/ab-test-interactive');
2831
await page.locator('a').locator('visible=true').first().click({ timeout: 10000 });
2932
await findTextInPage({ page, text: 'Stack at tablet' });

packages/sdks-tests/src/e2e-tests/state-binding.spec.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import { expect } from '@playwright/test';
2-
import { excludeTestFor, test } from '../helpers/index.js';
2+
import { test } from '../helpers/index.js';
33

44
test.describe('State binding', () => {
55
test.describe('inside repeater', () => {
6-
test('writing to state should update binding', async ({ page, packageName, sdk }) => {
6+
test('writing to state should update binding', async ({ page, packageName }) => {
77
test.fail(
8-
excludeTestFor({ angular: true }, sdk),
9-
'Angular Gen2 event binding not working for other blocks than button.'
8+
packageName === 'angular-16-ssr' || packageName === 'angular-16',
9+
'Angular Gen2 event binding not working properly for repeat blocks.'
1010
);
1111
// hydration errors
1212
test.fail(packageName === 'gen1-next14-pages');

packages/sdks-tests/src/helpers/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ export const isSSRFramework = (packageName: ServerName | 'DEFAULT') => {
9595
packageName === 'react' ||
9696
packageName === 'svelte' ||
9797
packageName === 'react-native' ||
98-
packageName === 'angular' ||
98+
packageName === 'angular-16' ||
9999
packageName === 'gen1-react';
100100
return !isNonSSR;
101101
};

packages/sdks-tests/src/helpers/sdk.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,9 @@ const serverNameEnumValues = [
2727
'nuxt',
2828
'svelte',
2929
'sveltekit',
30-
'angular',
31-
'angular-ssr',
30+
'angular-16',
31+
'angular-16-ssr',
32+
'angular-19-ssr',
3233
'gen1-react',
3334
'gen1-remix',
3435
'gen1-next14-pages',
@@ -71,6 +72,7 @@ export const SDK_MAP: Record<ServerName, { sdk: Sdk; gen: Generation }> = {
7172
'gen1-next14-pages': { sdk: 'oldReact', gen: 'gen1' },
7273
'gen1-next15-app': { sdk: 'oldReact', gen: 'gen1' },
7374
'gen1-remix': { sdk: 'oldReact', gen: 'gen1' },
74-
angular: { sdk: 'angular', gen: 'gen2' },
75-
'angular-ssr': { sdk: 'angular', gen: 'gen2' },
75+
'angular-16': { sdk: 'angular', gen: 'gen2' },
76+
'angular-16-ssr': { sdk: 'angular', gen: 'gen2' },
77+
'angular-19-ssr': { sdk: 'angular', gen: 'gen2' },
7678
};

packages/sdks-tests/src/snippet-tests/advanced-child.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { test, testClickAndVerifyVisibility } from '../helpers/index.js';
44
test.describe('Advanced child sub components', () => {
55
test('Display two buttons with label Tab 1 and Tab 2', async ({ page, packageName }) => {
66
test.skip(
7-
!['react', 'angular', 'angular-ssr', 'gen1-remix', 'gen1-react'].includes(packageName)
7+
!['react', 'angular-16', 'angular-16-ssr', 'gen1-remix', 'gen1-react'].includes(packageName)
88
);
99

1010
await page.goto('/advanced-child');
@@ -28,7 +28,7 @@ test.describe('Advanced child sub components', () => {
2828

2929
test('Display content for the clicked tab and hide the other', async ({ page, packageName }) => {
3030
test.skip(
31-
!['react', 'angular', 'angular-ssr', 'gen1-remix', 'gen1-react'].includes(packageName)
31+
!['react', 'angular-16', 'angular-16-ssr', 'gen1-remix', 'gen1-react'].includes(packageName)
3232
);
3333

3434
await page.goto('/advanced-child');

0 commit comments

Comments
 (0)