Skip to content

Commit e54d540

Browse files
committed
MC-3926: Slide Content Does Not Render After Page Load If Slide Is In Non-Default Tab
Address feedback in code review
1 parent ceba663 commit e54d540

File tree

4 files changed

+41
-15
lines changed

4 files changed

+41
-15
lines changed

app/code/Magento/PageBuilder/Test/Mftf/Test/AdminPageBuilderTabItemContentTests.xml

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -458,7 +458,7 @@
458458
<description value="As a Content Manager I want slider in non-default secondary tab to render on Admin and Storefront so that my content is viewable"/>
459459
<severity value="CRITICAL"/>
460460
<useCaseId value="MC-3926"/>
461-
<testCaseId value="MC-2564"/>
461+
<testCaseId value="MC-4218"/>
462462
<group value="pagebuilder"/>
463463
<group value="pagebuilder-tabs-content"/>
464464
<group value="pagebuilder-slide"/>
@@ -518,19 +518,39 @@
518518
<argument name="property" value="PageBuilderSlideItemButtonText_Slide1"/>
519519
</actionGroup>
520520
<actionGroup ref="saveEditPanelSettings" stepKey="saveEditPanelSettings"/>
521+
<!-- Verify slide looks OK in tab on stage before save -->
522+
<comment userInput="Verify slide looks OK in tab on stage before save" stepKey="commentVerifySlideBeforeSave"/>
523+
<scrollTo selector="{{TabOnStage.tabHeader('1')}}" x="0" y="-100" stepKey="scrollToTab"/>
524+
<click selector="{{TabOnStage.tabHeader('1')}}" stepKey="switchToDefaultTab"/>
525+
<click selector="{{TabOnStage.tabHeader('2')}}" stepKey="switchToSecondTabOnStage"/>
526+
<seeElement selector="{{SlideOnBackend.base('1')}}" stepKey="seeSliderOnOnStage"/>
527+
<seeElement selector="{{SlideOnBackend.messageContent('1', PageBuilderSlideItemContent_Slide1.value)}}" stepKey="seeSlide1ContentDisplayedOnStage"/>
528+
<seeElement selector="{{SlideOnBackend.buttonText('1', PageBuilderSlideItemButtonText_Slide1.value)}}" stepKey="seeSlide1ButtonTextDisplayedOnStage"/>
529+
<seeElement selector="{{SlideOnBackend.backgroundColor('1', PageBuilderBackgroundColor_Plaintext_Green.rgb)}}" stepKey="seeSlideBackgroundColorOnStage"/>
530+
<seeElement selector="{{SlideOnBackend.appearance('1', PageBuilderAppearance_Poster.value)}}" stepKey="verifySlide1HasPosterAppearanceOnStage"/>
531+
<!-- Verify slide looks OK in tab on stage after save -->
532+
<comment userInput="Verify slide looks OK in tab on stage after save" stepKey="commentVerifySlideAfterSave"/>
521533
<actionGroup ref="saveAndContinueEditCmsPage" stepKey="saveAndContinueEditCmsPage"/>
534+
<actionGroup ref="switchToPageBuilderStage" stepKey="switchToPageBuilderStage"/>
535+
<click selector="{{TabOnStage.tabHeader('2')}}" stepKey="switchToSecondTabOnStageAgainAfterSave"/>
536+
<seeElement selector="{{SlideOnBackend.base('1')}}" stepKey="seeSliderOnOnStageAgainAfterSave"/>
537+
<seeElement selector="{{SlideOnBackend.messageContent('1', PageBuilderSlideItemContent_Slide1.value)}}" stepKey="seeSlide1ContentDisplayedOnStageAgainAfterSave"/>
538+
<seeElement selector="{{SlideOnBackend.buttonText('1', PageBuilderSlideItemButtonText_Slide1.value)}}" stepKey="seeSlide1ButtonTextDisplayedOnStageAgainAfterSave"/>
539+
<seeElement selector="{{SlideOnBackend.backgroundColor('1', PageBuilderBackgroundColor_Plaintext_Green.rgb)}}" stepKey="seeSlideBackgroundColorOnStageAgainAfterSave"/>
540+
<seeElement selector="{{SlideOnBackend.appearance('1', PageBuilderAppearance_Poster.value)}}" stepKey="verifySlide1HasPosterAppearanceOnStageAgainAfterSave"/>
522541
<!-- Verify Slider in Secondary Tab on storefront -->
523-
<comment userInput="View Tab on storefront" stepKey="viewTabOnStorefront"/>
542+
<comment userInput="View Slider in secondary Tab on storefront" stepKey="viewTabOnStorefront"/>
524543
<actionGroup ref="navigateToStoreFront" stepKey="navigateToStoreFront">
525544
<argument name="contentType" value="PageBuilderTabsContentType"/>
526545
</actionGroup>
527-
<click selector="{{TabOnStorefront.tabHeader('2')}}" stepKey="switchToSecondTab"/>
528-
<seeElement selector="{{SlideOnFrontend.base('1')}}" stepKey="seeSliderOnPageBuilderPage"/>
529-
<seeElement selector="{{SlideOnFrontend.messageContent('1', PageBuilderSlideItemContent_Slide1.value)}}" stepKey="seeSlide1ContentDisplayed"/>
530-
<seeElement selector="{{SlideOnFrontend.buttonText('1', PageBuilderSlideItemButtonText_Slide1.value)}}" stepKey="seeSlide1ButtonTextDisplayed"/>
531-
<seeElement selector="{{SlideOnFrontend.linkUrl('1', PageBuilderSlideItemLinkURL_External.value)}}" stepKey="seeSlide1LinkURL"/>
532-
<seeElement selector="{{SlideOnFrontend.backgroundColor('1', PageBuilderBackgroundColor_Plaintext_Green.rgb)}}" stepKey="seeSlideBackgroundColor"/>
533-
<seeElement selector="{{SlideOnFrontend.appearance('1', PageBuilderAppearance_Poster.value)}}" stepKey="verifySlide1HasPosterAppearanceOnStorefront"/>
546+
<click selector="{{TabOnStorefront.tabHeader('2')}}" stepKey="switchToSecondTabOnStorefront"/>
547+
<waitForElementVisible selector="{{SlideOnFrontend.base('1')}}" stepKey="waitForSliderToBeVisible" />
548+
<seeElement selector="{{SlideOnFrontend.base('1')}}" stepKey="seeSliderOnFrontend"/>
549+
<seeElement selector="{{SlideOnFrontend.messageContent('1', PageBuilderSlideItemContent_Slide1.value)}}" stepKey="seeSlide1ContentDisplayedOnFrontend"/>
550+
<seeElement selector="{{SlideOnFrontend.buttonText('1', PageBuilderSlideItemButtonText_Slide1.value)}}" stepKey="seeSlide1ButtonTextDisplayedOnFrontend"/>
551+
<seeElement selector="{{SlideOnFrontend.linkUrl('1', PageBuilderSlideItemLinkURL_External.value)}}" stepKey="seeSlide1LinkURLOnFrontend"/>
552+
<seeElement selector="{{SlideOnFrontend.backgroundColor('1', PageBuilderBackgroundColor_Plaintext_Green.rgb)}}" stepKey="seeSlideBackgroundColorOnFrontend"/>
553+
<seeElement selector="{{SlideOnFrontend.appearance('1', PageBuilderAppearance_Poster.value)}}" stepKey="verifySlide1HasPosterAppearanceOnStorefrontOnFrontend"/>
534554
</test>
535555
<test name="CanAddMapToTab">
536556
<annotations>

app/code/Magento/PageBuilder/view/adminhtml/web/js/content-type/slider/preview.js

Lines changed: 4 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/code/Magento/PageBuilder/view/adminhtml/web/ts/js/content-type/slider/preview.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,10 @@ export default class Preview extends PreviewCollection {
113113
this.parent.dataStore.subscribe(this.buildSlick);
114114

115115
// Redraw slide after content type gets redrawn
116-
events.on("contentType:redrawAfter", function() {
117-
$(this.element).slick("setPosition");
116+
events.on("contentType:redrawAfter", function(args: ContentTypeAfterRenderEventParamsInterface) {
117+
if ($.contains(args.element, this.element)) {
118+
$(this.element).slick("setPosition");
119+
}
118120
}.bind(this));
119121

120122
// Set the stage to interacting when a slide is focused

app/code/Magento/PageBuilder/view/base/web/js/content-type/slider/appearance/default/widget.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,10 @@ define([
3030
});
3131

3232
// Redraw slide after content type gets redrawn
33-
events.on('contentType:redrawAfter', function () {
34-
$element.slick('setPosition');
33+
events.on('contentType:redrawAfter', function (args) {
34+
if ($.contains(args.element, sliderElement)) {
35+
$element.slick('setPosition');
36+
}
3537
});
3638
};
3739
});

0 commit comments

Comments
 (0)