Skip to content

Commit 4b78d6c

Browse files
authored
Merge branch 'main' into custom-components-svelte
2 parents c60af88 + 782424f commit 4b78d6c

File tree

79 files changed

+6876
-4606
lines changed

Some content is hidden

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

79 files changed

+6876
-4606
lines changed

packages/react/CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# @builder.io/react
22

3+
## 8.0.10
4+
5+
### Patch Changes
6+
7+
- 372746e: Feat: add title option for images
8+
39
## 8.0.9
410

511
### Patch Changes

packages/react/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@builder.io/react",
3-
"version": "8.0.9",
3+
"version": "8.0.10",
44
"description": "",
55
"keywords": [],
66
"main": "dist/builder-react.cjs.js",

packages/react/src/blocks/Image.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -325,6 +325,7 @@ class ImageComponent extends React.Component<any, { imageLoaded: boolean; load:
325325
} as any)
326326
: null)}
327327
alt={this.props.altText}
328+
title={this.props.title}
328329
key={
329330
Builder.isEditing
330331
? (typeof this.image === 'string' && this.image.split('?')[0]) || undefined
@@ -548,6 +549,11 @@ export const Image = withBuilder(ImageComponent, {
548549
type: 'string',
549550
helperText: 'Text to display when the user has images off',
550551
},
552+
{
553+
name: 'title',
554+
type: 'string',
555+
helperText: 'Text to display when hovering over the asset',
556+
},
551557
{
552558
name: 'highPriority',
553559
type: 'boolean',

packages/sdks-tests/playwright.config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ export default defineConfig({
6666
/**
6767
* Increase the default timeout for snippet tests because they're not deterministic.
6868
*/
69-
timeout: testType === 'snippet' ? 60000 : 5000,
69+
timeout: testType === 'snippet' ? 50000 : 5000,
7070
},
7171

7272
/* Configure projects for major browsers */

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

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,34 @@ test.describe('Blocks', () => {
228228

229229
await expect(img).not.toHaveAttribute('srcset');
230230
});
231+
232+
test('Image title attribute', async ({ page, sdk, packageName }) => {
233+
test.skip(checkIsRN(sdk));
234+
test.skip(
235+
isSSRFramework(packageName),
236+
'SSR frameworks get the images from the server so page.route intercept does not work'
237+
);
238+
const mockImgPath = path.join(mockFolderPath, 'placeholder-img.png');
239+
const mockImgBuffer = fs.readFileSync(mockImgPath);
240+
241+
await page.route('**/*', route => {
242+
const request = route.request();
243+
if (request.url().includes('cdn.builder.io/api/v1/image')) {
244+
return route.fulfill({
245+
status: 200,
246+
contentType: 'image/png',
247+
body: mockImgBuffer,
248+
});
249+
} else {
250+
return route.continue();
251+
}
252+
});
253+
254+
await page.goto('/image');
255+
256+
const img = page.getByTitle('title test');
257+
await expect(img).toHaveAttribute('title', 'title test');
258+
});
231259
});
232260

233261
test.describe('Video', () => {

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ test.describe('Advanced child sub components', () => {
1212
'gen1-react',
1313
'svelte',
1414
'sveltekit',
15+
'qwik-city'
1516
].includes(packageName)
1617
);
1718

@@ -36,6 +37,7 @@ test.describe('Advanced child sub components', () => {
3637

3738
test('Display content for the clicked tab and hide the other', async ({ page, packageName }) => {
3839
test.skip(
40+
3941
![
4042
'react',
4143
'angular-16',
@@ -44,6 +46,7 @@ test.describe('Advanced child sub components', () => {
4446
'gen1-react',
4547
'svelte',
4648
'sveltekit',
49+
'qwik-city'
4750
].includes(packageName)
4851
);
4952

packages/sdks-tests/src/snippet-tests/blueprints-product-details.spec.ts

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,21 @@ import { test } from '../helpers/index.js';
33

44
test.describe('Product Details Component', () => {
55
test.beforeEach(async ({ page, packageName }) => {
6-
test.skip(!['angular-16', 'angular-16-ssr'].includes(packageName));
6+
test.skip(
7+
![
8+
'angular-16',
9+
'angular-16-ssr',
10+
'react',
11+
'vue',
12+
'nuxt',
13+
'svelte',
14+
'sveltekit',
15+
'qwik-city',
16+
'react-sdk-next-14-app',
17+
'react-sdk-next-pages',
18+
'hydrogen',
19+
].includes(packageName)
20+
);
721
// Visit the page where ProductDetailsComponent is rendered
822
await page.goto('/product/category/jacket');
923
});
@@ -25,8 +39,6 @@ test.describe('Product Details Component', () => {
2539
// Verify the image source, alt text, and size
2640
await expect(image).toHaveAttribute('src', /.+/);
2741
await expect(image).toHaveAttribute('alt', 'Red Jacket');
28-
await expect(image).toHaveAttribute('width', '400');
29-
await expect(image).toHaveAttribute('height', '500');
3042
});
3143

3244
test('should display product copy (description)', async ({ page }) => {

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ test.describe('Div with Hero class, and text', () => {
1212
'gen1-react',
1313
'svelte',
1414
'sveltekit',
15+
'qwik-city'
1516
].includes(packageName)
1617
);
1718

@@ -29,6 +30,7 @@ test.describe('Div with Hero class, and text', () => {
2930
'gen1-react',
3031
'svelte',
3132
'sveltekit',
33+
'qwik-city'
3234
].includes(packageName)
3335
);
3436

packages/sdks-tests/src/snippet-tests/editable-regions.spec.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ test.describe('Editable regions in custom components', () => {
3333
'gen1-react',
3434
'svelte',
3535
'sveltekit',
36+
'qwik-city'
3637
].includes(packageName)
3738
);
3839

packages/sdks-tests/src/specs/image.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ export const CONTENT = {
8787
width: 1880,
8888
aspectRatio: 0.19,
8989
altText: 'alt text test',
90+
title: 'title test',
9091
},
9192
},
9293
responsiveStyles: {
@@ -289,6 +290,7 @@ export const CONTENT_2 = {
289290
width: 1880,
290291
aspectRatio: 0.19,
291292
altText: 'alt text test',
293+
title: 'title test',
292294
},
293295
},
294296
responsiveStyles: {

0 commit comments

Comments
 (0)