Skip to content

update : videos - text , carousel , columns , embed superhero#636

Open
BaskarMitrah wants to merge 4 commits into
stagefrom
devsite-2134
Open

update : videos - text , carousel , columns , embed superhero#636
BaskarMitrah wants to merge 4 commits into
stagefrom
devsite-2134

Conversation

@BaskarMitrah

Copy link
Copy Markdown
Collaborator

Description

I’ve updated embedded video support in the Text, Carousel, Columns, and Super Hero blocks for both DevBiz and DevDocs.

I also updated all supported video formats in the above-mentioned blocks, including MP4, RawGitHub URLs, YouTube videos, and local videos (in DevDocs).

Jira

https://jira.corp.adobe.com/browse/DEVSITE-2134

Test URL

Devbiz

Previous : https://stage--adp-devsite-stage--adobedocs.aem.page/test/baskar/video-controls
Updated: https://devsite-2134--adp-devsite-stage--adobedocs.aem.page/test/baskar/video-controls

Devdocs

Previous : https://stage--adp-devsite-stage--adobedocs.aem.page/github-actions-test/test/mp4
Updated: https://devsite-2134--adp-devsite-stage--adobedocs.aem.page/github-actions-test/test/mp4

@aem-code-sync

aem-code-sync Bot commented May 29, 2026

Copy link
Copy Markdown

Hello, I'm the AEM Code Sync Bot and I will run some actions to deploy your branch and validate page speed.
In case there are problems, just click a checkbox below to rerun the respective action.

  • Re-run all PSI checks
  • Re-run failed PSI checks
  • Re-sync branch
Commits

@aem-code-sync

aem-code-sync Bot commented May 29, 2026

Copy link
Copy Markdown

@github-actions

Copy link
Copy Markdown

❌ Test Results

Status: Some tests failed!

🔍 Click to view failed tests
📁 test/blocks/code/code.test.js:

❌ Code block > code > data-playground attributes from class
      AssertionError: expected null to equal 'code-session'
        at n.<anonymous> (test/blocks/code/code.test.js:29:63)


📁 test/blocks/columns/columns.test.js:

❌ Columns block > Columns > columns-container
      AssertionError: expected false to be true
      + expected - actual
      
      -false
      +true
      
      at n.<anonymous> (test/blocks/columns/columns.test.js:29:117)

❌ Columns block > Columns > buttons
      AssertionError: expected false to be true
      + expected - actual
      
      -false
      +true
      
      at test/blocks/columns/columns.test.js:100:86
      at NodeList.forEach (<anonymous>)
      at n.<anonymous> (test/blocks/columns/columns.test.js:95:50)


📁 test/blocks/embed/embed.test.js:

❌ Could not import your test module. Check the browser logs or open the browser in debug mode for more information.


📁 test/blocks/contributors/contributors.test.js:

❌ Contributors block > contributors > firstDiv
      AssertionError: expected null to exist
        at n.<anonymous> (test/blocks/contributors/contributors.test.js:32:28)

❌ Contributors block > contributors > remove divs without children
      AssertionError: expected false to be true
      + expected - actual
      
      -false
      +true
      
      at test/blocks/contributors/contributors.test.js:42:44
      at NodeList.forEach (<anonymous>)
      at n.<anonymous> (test/blocks/contributors/contributors.test.js:41:51)

❌ Contributors block > contributors > last update div
      AssertionError: expected '' to equal 'https://github.com/AdobeDocs/express-add-ons-docs/commits/main/src/pages/references/index.md'
      + expected - actual
      
      +https://github.com/AdobeDocs/express-add-ons-docs/commits/main/src/pages/references/index.md
      
      at n.<anonymous> (test/blocks/contributors/contributors.test.js:53:40)

❌ Contributors block > contributors > image list div
      AssertionError: expected null to exist
        at test/blocks/contributors/contributors.test.js:71:27
        at Array.forEach (<anonymous>)
        at n.<anonymous> (test/blocks/contributors/contributors.test.js:69:33)


📁 test/blocks/tab/tab-playground.test.js:

❌ Tab block playground metadata > extracts data-playground attributes via decoratePreformattedCode
      AssertionError: expected null to equal 'tab-session'
        at n.<anonymous> (test/blocks/tab/tab-playground.test.js:17:63)


📁 test/blocks/tab/tab.test.js:

❌ Tab block > Tab Button Structure > tab > button load structure
      AssertionError: expected 'tab-button active' to equal 'tab-button'
      + expected - actual
      
      -tab-button active
      +tab-button
      
      at n.<anonymous> (test/blocks/tab/tab.test.js:60:38)

❌ Tab block > Sub-tabs > sub-tab > attributes
      AssertionError: expected 'subTab1' to equal 'subTab3'
      + expected - actual
      
      -subTab1
      +subTab3
      
      at test/blocks/tab/tab.test.js:135:58
      at NodeList.forEach (<anonymous>)
      at n.<anonymous> (test/blocks/tab/tab.test.js:133:23)



Test Coverage Report

Overall Coverage Summary

Metric Percentage Coverage
Statements 55.77% 3702/6637
Branches 84.67% 525/620
Functions 51.83% 127/245
Lines 55.77% 3702/6637

Coverage by File/Directory

File Statements Branches Functions Lines
blocks/accordion 100% 100% 100% 100%
blocks/announcement 76.69% 60% 100% 76.69%
blocks/banner 94.28% 62.5% 100% 94.28%
blocks/cards 94.04% 94.73% 100% 94.04%
blocks/carousel 78.08% 71.15% 77.77% 78.08%
blocks/code 81.81% 60% 100% 81.81%
blocks/columns 61.39% 76.92% 66.66% 61.39%
blocks/contributors 84.23% 56% 100% 84.23%
blocks/edition 91.22% 57.14% 100% 91.22%
blocks/fragment 17.03% 100% 0% 17.03%
blocks/image-text 57.5% 55.55% 100% 57.5%
blocks/info 96.87% 100% 100% 96.87%
blocks/info-card 100% 100% 100% 100%
blocks/info-columns 75% 100% 100% 75%
blocks/list 59.09% 85.71% 100% 59.09%
blocks/mini-resource-card 97.89% 87.5% 100% 97.89%
blocks/product-card 78.57% 94.11% 100% 78.57%
blocks/profile-card 96.29% 100% 100% 96.29%
blocks/site-hero 93.93% 80% 100% 93.93%
blocks/summary 98.36% 88.88% 100% 98.36%
blocks/tab 95.39% 92.3% 100% 95.39%
blocks/table 100% 84.61% 100% 100%
blocks/text 49.33% 80% 66.66% 49.33%
blocks/title 84% 66.66% 100% 84%
components 44.4% 88.18% 46.15% 44.4%
scripts 46.24% 93.08% 40.78% 46.24%

Coverage report generated at 2026-05-29T08:25:55.868Z

return getYouTubeEmbedUrl(url) || url.href;
}

const VIDEO_URL_PATTERN = /(?:youtube\.com|youtu\.be|video\.tv\.adobe\.com|vimeo\.com|tiktok\.com|instagram\.com|twitter\.com|x\.com|\.mp4(?:$|\?|&))/i;

@melissag-ensemble melissag-ensemble May 29, 2026

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

isVideoUrl over- and under-matches because of VIDEO_URL_PATTERN.

The regex looks for x.com anywhere in the string, with no host boundary. So any URL whose host ends in "x.com" — netflix.com, vox.com, max.com — is treated as a video. In the text block, that means a normal link like [our pricing](https://netflix.com/…) gets its whole paragraph replaced by a broken video embed.

It also only matches .mp4, so direct .webm and .ogg links are not detected as videos here — even though isDirectVideoUrl does accept them. So the two helpers disagree.

Could we detect by parsing the URL and checking the actual host (plus isDirectVideoUrl for direct files) rather than substring-matching the raw string? Two things to keep if you go that route:

  • video.tv.adobe.com should still count as a video (getVideoProvider doesn't currently recognize it).
  • Link text isn't always a full URL, so it'll need to handle non-parseable values gracefully.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

instead of using regex I've used the isDirectVideoUrl, getVideoProvider function

Comment thread hlx_statics/components/video-embed-utils.js Outdated
Comment thread hlx_statics/components/video-embed-utils.js
Comment thread hlx_statics/blocks/columns/columns.js Outdated
Comment thread hlx_statics/blocks/columns/columns.js Outdated
}
} else {
const iframeSrc = getEmbeddableVideoUrl(videoUrl);
wrapper.innerHTML = `<iframe src="${iframeSrc}" title="${title}" allowfullscreen loading="lazy"></iframe>`;

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

similar comment

Comment thread hlx_statics/components/video-embed-utils.js Outdated
} else {
block.innerHTML = getDefaultEmbed(url, loop, controls, vidTitle, isShort, autoplay);
block.classList.add('block', 'embed');
const renderResult = renderEmbedContent(link, {

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

vidTitle here is sourced only from block.getAttribute('data-videotitle') (just above), and link is a.href — so the author's descriptive link text is dropped. That's the ticket's headline observation: embed uses literal paths, leaving no way to provide alt text. Every other block in this PR already uses link text; embed is the lone holdout.

The fix exists in-PR: resolveVideoLabel (used by superhero) returns link text when it isn't itself a URL. Could vidTitle fall back to it — block.getAttribute('data-videotitle') || resolveVideoLabel(block.querySelector('a'))?

Scope caveat: this fixes DevBiz only — DevDocs authors a bare URL with no anchor, so DevDocs alt-text needs a separate devsite-runtime-connector change + docs update. So 2134 can't be fully closed by this hlx_statics-only PR — confirm scope + that the connector follow-up is tracked?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Thanks, agreed on all of this.

vidTitle fallback: Yes. We now resolve the title before block.textContent = '' clears the anchor:

block.getAttribute('data-videotitle') || resolveVideoLabel(anchor)

That value is passed through to loadEmbed (including the placeholder click path). resolveEmbedBlockVideo uses the same resolveVideoLabel logic for carousel embeds so link text is preserved there too.

}

function processTextBlockVideos(block) {
block.querySelectorAll('a').forEach((anchor) => {

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

This is a behavior change from stage, where only standalone button-container links became videos. Now every anchor matching the video pattern gets its enclosing <p> replaced (container?.replaceWith(slot) below), which silently destroys content in two cases the old code never touched:

  1. Inline links in prose — e.g. Watch [our keynote](https://youtube.com/…) for details. The whole sentence is one <p>, so the surrounding copy is deleted and replaced with a player.
  2. Social/profile links — twitter/x/instagram/tiktok links become embeds (and inject third-party scripts). Amplified by the loose VIDEO_URL_PATTERN (see the regex comment): links to hosts ending in "x.com" like netflix.com also get pulled out and replaced with a broken iframe.

Since the block JS is shared, this hits DevDocs-authored text too, not just DevBiz.

Suggested direction: gate on getVideoProvider(url) !== null (precise hosts) instead of the substring regex, and only convert standalone-link paragraphs — skip any anchor whose <p> has other text or sibling content. Could you confirm the standalone case is the only intended one?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Yes, standalone video links are the only intended case for the text block, matching stage behavior (p.button-container after decorateButtons).

Standalone-only conversion — We only embed when the link is in a p.button-container, or the parent

has no other meaningful content (only the anchor plus optional whitespace). Inline prose like “Watch our keynote for details” is left unchanged.

Host-based URL detection — We replaced the substring VIDEO_URL_PATTERN with getVideoProvider / isDirectVideoUrl (plus video.tv.adobe.com), so false positives like netflix.com matching x.com no longer happen.

Text block allow list — Text blocks only auto-embed YouTube, Vimeo, direct video files, and Adobe TV. Twitter/X, Instagram, and TikTok profile links are not converted in text blocks (embed/carousel blocks can still handle those where appropriate).

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Thanks — the code confirms all three points. One follow-up: hasTextBlockMedia returns true for any p.button-container, not just video slots. Can you confirm existing text blocks with CTA buttons but no video still render correctly?

Comment thread hlx_statics/components/video-embed-utils.js Outdated
@github-actions

github-actions Bot commented Jun 1, 2026

Copy link
Copy Markdown

❌ Test Results

Status: Some tests failed!

🔍 Click to view failed tests
📁 test/blocks/code/code.test.js:

❌ Code block > code > data-playground attributes from class
      AssertionError: expected null to equal 'code-session'
        at n.<anonymous> (test/blocks/code/code.test.js:29:63)


📁 test/blocks/columns/columns.test.js:

❌ Columns block > Columns > columns-container
      AssertionError: expected false to be true
      + expected - actual
      
      -false
      +true
      
      at n.<anonymous> (test/blocks/columns/columns.test.js:29:117)

❌ Columns block > Columns > buttons
      AssertionError: expected false to be true
      + expected - actual
      
      -false
      +true
      
      at test/blocks/columns/columns.test.js:100:86
      at NodeList.forEach (<anonymous>)
      at n.<anonymous> (test/blocks/columns/columns.test.js:95:50)


📁 test/blocks/embed/embed.test.js:

❌ Could not import your test module. Check the browser logs or open the browser in debug mode for more information.


📁 test/blocks/contributors/contributors.test.js:

❌ Contributors block > contributors > firstDiv
      AssertionError: expected null to exist
        at n.<anonymous> (test/blocks/contributors/contributors.test.js:32:28)

❌ Contributors block > contributors > remove divs without children
      AssertionError: expected false to be true
      + expected - actual
      
      -false
      +true
      
      at test/blocks/contributors/contributors.test.js:42:44
      at NodeList.forEach (<anonymous>)
      at n.<anonymous> (test/blocks/contributors/contributors.test.js:41:51)

❌ Contributors block > contributors > last update div
      AssertionError: expected '' to equal 'https://github.com/AdobeDocs/express-add-ons-docs/commits/main/src/pages/references/index.md'
      + expected - actual
      
      +https://github.com/AdobeDocs/express-add-ons-docs/commits/main/src/pages/references/index.md
      
      at n.<anonymous> (test/blocks/contributors/contributors.test.js:53:40)

❌ Contributors block > contributors > image list div
      AssertionError: expected null to exist
        at test/blocks/contributors/contributors.test.js:71:27
        at Array.forEach (<anonymous>)
        at n.<anonymous> (test/blocks/contributors/contributors.test.js:69:33)


📁 test/blocks/tab/tab-playground.test.js:

❌ Tab block playground metadata > extracts data-playground attributes via decoratePreformattedCode
      AssertionError: expected null to equal 'tab-session'
        at n.<anonymous> (test/blocks/tab/tab-playground.test.js:17:63)


📁 test/blocks/tab/tab.test.js:

❌ Tab block > Tab Button Structure > tab > button load structure
      AssertionError: expected 'tab-button active' to equal 'tab-button'
      + expected - actual
      
      -tab-button active
      +tab-button
      
      at n.<anonymous> (test/blocks/tab/tab.test.js:60:38)

❌ Tab block > Sub-tabs > sub-tab > attributes
      AssertionError: expected 'subTab1' to equal 'subTab3'
      + expected - actual
      
      -subTab1
      +subTab3
      
      at test/blocks/tab/tab.test.js:135:58
      at NodeList.forEach (<anonymous>)
      at n.<anonymous> (test/blocks/tab/tab.test.js:133:23)



Test Coverage Report

Overall Coverage Summary

Metric Percentage Coverage
Statements 55.78% 3719/6667
Branches 84.32% 527/625
Functions 52.22% 129/247
Lines 55.78% 3719/6667

Coverage by File/Directory

File Statements Branches Functions Lines
blocks/accordion 100% 100% 100% 100%
blocks/announcement 76.69% 60% 100% 76.69%
blocks/banner 94.28% 62.5% 100% 94.28%
blocks/cards 94.04% 94.73% 100% 94.04%
blocks/carousel 78.08% 71.15% 77.77% 78.08%
blocks/code 81.81% 60% 100% 81.81%
blocks/columns 61.85% 76.31% 66.66% 61.85%
blocks/contributors 84.23% 56% 100% 84.23%
blocks/edition 91.22% 57.14% 100% 91.22%
blocks/fragment 17.03% 100% 0% 17.03%
blocks/image-text 57.5% 55.55% 100% 57.5%
blocks/info 96.87% 100% 100% 96.87%
blocks/info-card 100% 100% 100% 100%
blocks/info-columns 75% 100% 100% 75%
blocks/list 59.09% 85.71% 100% 59.09%
blocks/mini-resource-card 97.89% 87.5% 100% 97.89%
blocks/product-card 78.57% 94.11% 100% 78.57%
blocks/profile-card 96.29% 100% 100% 96.29%
blocks/site-hero 93.93% 80% 100% 93.93%
blocks/summary 98.36% 88.88% 100% 98.36%
blocks/tab 95.39% 92.3% 100% 95.39%
blocks/table 100% 84.61% 100% 100%
blocks/text 46.77% 71.42% 62.5% 46.77%
blocks/title 84% 66.66% 100% 84%
components 44.38% 88.07% 48.71% 44.38%
scripts 46.42% 93.12% 40.78% 46.42%

Coverage report generated at 2026-06-01T14:57:40.533Z

embedBlock.classList.add('embed-is-loaded');
embedBlock.dataset.carouselVideo = 'true';
}
} catch {

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

catch still doesn't bind error — change } catch { to } catch (error) { or the console.warn will throw instead of log.

Suggested change
} catch {
} catch (error) {

Comment thread hlx_statics/blocks/columns/columns.js Outdated
wrapper.classList.add(renderResult.className);
}
} else {
wrapper.innerHTML = buildFlatYouTubeIframeHtml(videoUrl, title, true);

@melissag-ensemble melissag-ensemble Jun 1, 2026

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

else calls buildFlatYouTubeIframeHtml for non-YouTube URLs — getYouTubeEmbedUrl returns null for those so the slot renders empty and the video is silently dropped. The else branch should be removed; if no provider matched, return early rather than rendering nothing.

@github-actions

github-actions Bot commented Jun 4, 2026

Copy link
Copy Markdown

❌ Test Results

Status: Some tests failed!

🔍 Click to view failed tests
📁 test/blocks/code/code.test.js:

❌ Code block > code > data-playground attributes from class
      AssertionError: expected null to equal 'code-session'
        at n.<anonymous> (test/blocks/code/code.test.js:29:63)


📁 test/blocks/columns/columns.test.js:

❌ Columns block > Columns > columns-container
      AssertionError: expected false to be true
      + expected - actual
      
      -false
      +true
      
      at n.<anonymous> (test/blocks/columns/columns.test.js:29:117)

❌ Columns block > Columns > buttons
      AssertionError: expected false to be true
      + expected - actual
      
      -false
      +true
      
      at test/blocks/columns/columns.test.js:100:86
      at NodeList.forEach (<anonymous>)
      at n.<anonymous> (test/blocks/columns/columns.test.js:95:50)


📁 test/blocks/embed/embed.test.js:

❌ Could not import your test module. Check the browser logs or open the browser in debug mode for more information.


📁 test/blocks/contributors/contributors.test.js:

❌ Contributors block > contributors > firstDiv
      AssertionError: expected null to exist
        at n.<anonymous> (test/blocks/contributors/contributors.test.js:32:28)

❌ Contributors block > contributors > remove divs without children
      AssertionError: expected false to be true
      + expected - actual
      
      -false
      +true
      
      at test/blocks/contributors/contributors.test.js:42:44
      at NodeList.forEach (<anonymous>)
      at n.<anonymous> (test/blocks/contributors/contributors.test.js:41:51)

❌ Contributors block > contributors > last update div
      AssertionError: expected '' to equal 'https://github.com/AdobeDocs/express-add-ons-docs/commits/main/src/pages/references/index.md'
      + expected - actual
      
      +https://github.com/AdobeDocs/express-add-ons-docs/commits/main/src/pages/references/index.md
      
      at n.<anonymous> (test/blocks/contributors/contributors.test.js:53:40)

❌ Contributors block > contributors > image list div
      AssertionError: expected null to exist
        at test/blocks/contributors/contributors.test.js:71:27
        at Array.forEach (<anonymous>)
        at n.<anonymous> (test/blocks/contributors/contributors.test.js:69:33)


📁 test/blocks/tab/tab-playground.test.js:

❌ Tab block playground metadata > extracts data-playground attributes via decoratePreformattedCode
      AssertionError: expected null to equal 'tab-session'
        at n.<anonymous> (test/blocks/tab/tab-playground.test.js:17:63)


📁 test/blocks/tab/tab.test.js:

❌ Tab block > Tab Button Structure > tab > button load structure
      AssertionError: expected 'tab-button active' to equal 'tab-button'
      + expected - actual
      
      -tab-button active
      +tab-button
      
      at n.<anonymous> (test/blocks/tab/tab.test.js:60:38)

❌ Tab block > Sub-tabs > sub-tab > attributes
      AssertionError: expected 'subTab1' to equal 'subTab3'
      + expected - actual
      
      -subTab1
      +subTab3
      
      at test/blocks/tab/tab.test.js:135:58
      at NodeList.forEach (<anonymous>)
      at n.<anonymous> (test/blocks/tab/tab.test.js:133:23)



Test Coverage Report

Overall Coverage Summary

Metric Percentage Coverage
Statements 55.68% 3721/6682
Branches 84.6% 533/630
Functions 52.22% 129/247
Lines 55.68% 3721/6682

Coverage by File/Directory

File Statements Branches Functions Lines
blocks/accordion 100% 100% 100% 100%
blocks/announcement 76.69% 60% 100% 76.69%
blocks/banner 94.28% 62.5% 100% 94.28%
blocks/cards 94.04% 94.73% 100% 94.04%
blocks/carousel 78.08% 71.15% 77.77% 78.08%
blocks/code 81.81% 60% 100% 81.81%
blocks/columns 61.39% 76.31% 66.66% 61.39%
blocks/contributors 84.23% 56% 100% 84.23%
blocks/edition 91.37% 57.14% 100% 91.37%
blocks/fragment 17.03% 100% 0% 17.03%
blocks/image-text 57.5% 55.55% 100% 57.5%
blocks/info 96.87% 100% 100% 96.87%
blocks/info-card 100% 100% 100% 100%
blocks/info-columns 75% 100% 100% 75%
blocks/list 59.09% 85.71% 100% 59.09%
blocks/mini-resource-card 97.89% 87.5% 100% 97.89%
blocks/product-card 78.57% 94.11% 100% 78.57%
blocks/profile-card 96.29% 100% 100% 96.29%
blocks/site-hero 93.93% 80% 100% 93.93%
blocks/summary 98.36% 88.88% 100% 98.36%
blocks/tab 93.25% 96.87% 100% 93.25%
blocks/table 100% 84.61% 100% 100%
blocks/text 46.77% 71.42% 62.5% 46.77%
blocks/title 84% 66.66% 100% 84%
components 44.38% 88.07% 48.71% 44.38%
scripts 46.23% 93.08% 40.78% 46.23%

Coverage report generated at 2026-06-04T05:08:26.043Z

@github-actions

github-actions Bot commented Jun 8, 2026

Copy link
Copy Markdown

❌ Test Results

Status: Some tests failed!

🔍 Click to view failed tests
📁 test/blocks/code/code.test.js:

❌ Code block > code > data-playground attributes from class
      AssertionError: expected null to equal 'code-session'
        at n.<anonymous> (test/blocks/code/code.test.js:29:63)


📁 test/blocks/columns/columns.test.js:

❌ Columns block > Columns > columns-container
      AssertionError: expected false to be true
      + expected - actual
      
      -false
      +true
      
      at n.<anonymous> (test/blocks/columns/columns.test.js:29:117)

❌ Columns block > Columns > buttons
      AssertionError: expected false to be true
      + expected - actual
      
      -false
      +true
      
      at test/blocks/columns/columns.test.js:100:86
      at NodeList.forEach (<anonymous>)
      at n.<anonymous> (test/blocks/columns/columns.test.js:95:50)


📁 test/blocks/embed/embed.test.js:

❌ Could not import your test module. Check the browser logs or open the browser in debug mode for more information.


📁 test/blocks/contributors/contributors.test.js:

❌ Contributors block > contributors > firstDiv
      AssertionError: expected null to exist
        at n.<anonymous> (test/blocks/contributors/contributors.test.js:32:28)

❌ Contributors block > contributors > remove divs without children
      AssertionError: expected false to be true
      + expected - actual
      
      -false
      +true
      
      at test/blocks/contributors/contributors.test.js:42:44
      at NodeList.forEach (<anonymous>)
      at n.<anonymous> (test/blocks/contributors/contributors.test.js:41:51)

❌ Contributors block > contributors > last update div
      AssertionError: expected '' to equal 'https://github.com/AdobeDocs/express-add-ons-docs/commits/main/src/pages/references/index.md'
      + expected - actual
      
      +https://github.com/AdobeDocs/express-add-ons-docs/commits/main/src/pages/references/index.md
      
      at n.<anonymous> (test/blocks/contributors/contributors.test.js:53:40)

❌ Contributors block > contributors > image list div
      AssertionError: expected null to exist
        at test/blocks/contributors/contributors.test.js:71:27
        at Array.forEach (<anonymous>)
        at n.<anonymous> (test/blocks/contributors/contributors.test.js:69:33)


📁 test/blocks/tab/tab-playground.test.js:

❌ Tab block playground metadata > extracts data-playground attributes via decoratePreformattedCode
      AssertionError: expected null to equal 'tab-session'
        at n.<anonymous> (test/blocks/tab/tab-playground.test.js:17:63)


📁 test/blocks/tab/tab.test.js:

❌ Tab block > Tab Button Structure > tab > button load structure
      AssertionError: expected 'tab-button active' to equal 'tab-button'
      + expected - actual
      
      -tab-button active
      +tab-button
      
      at n.<anonymous> (test/blocks/tab/tab.test.js:60:38)

❌ Tab block > Sub-tabs > sub-tab > attributes
      AssertionError: expected 'subTab1' to equal 'subTab3'
      + expected - actual
      
      -subTab1
      +subTab3
      
      at test/blocks/tab/tab.test.js:135:58
      at NodeList.forEach (<anonymous>)
      at n.<anonymous> (test/blocks/tab/tab.test.js:133:23)



Test Coverage Report

Overall Coverage Summary

Metric Percentage Coverage
Statements 55.73% 3731/6694
Branches 84.65% 535/632
Functions 52.01% 129/248
Lines 55.73% 3731/6694

Coverage by File/Directory

File Statements Branches Functions Lines
blocks/accordion 100% 100% 100% 100%
blocks/announcement 76.69% 60% 100% 76.69%
blocks/banner 94.28% 62.5% 100% 94.28%
blocks/cards 94.04% 94.73% 100% 94.04%
blocks/carousel 78.08% 71.15% 77.77% 78.08%
blocks/code 81.81% 60% 100% 81.81%
blocks/columns 60.79% 76.92% 66.66% 60.79%
blocks/contributors 84.23% 56% 100% 84.23%
blocks/edition 91.37% 57.14% 100% 91.37%
blocks/fragment 17.03% 100% 0% 17.03%
blocks/image-text 57.5% 55.55% 100% 57.5%
blocks/info 96.87% 100% 100% 96.87%
blocks/info-card 100% 100% 100% 100%
blocks/info-columns 75% 100% 100% 75%
blocks/list 59.09% 85.71% 100% 59.09%
blocks/mini-resource-card 97.89% 87.5% 100% 97.89%
blocks/product-card 78.57% 94.11% 100% 78.57%
blocks/profile-card 96.29% 100% 100% 96.29%
blocks/site-hero 93.93% 80% 100% 93.93%
blocks/summary 98.36% 88.88% 100% 98.36%
blocks/tab 93.25% 96.87% 100% 93.25%
blocks/table 100% 84.61% 100% 100%
blocks/text 46.77% 71.42% 62.5% 46.77%
blocks/title 84% 66.66% 100% 84%
components 44.31% 88.07% 47.5% 44.31%
scripts 46.4% 93.12% 40.78% 46.4%

Coverage report generated at 2026-06-08T05:48:09.030Z

@melissag-ensemble melissag-ensemble left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Found a regression with Carousel. Before:

Image

After:

Image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants