diff --git a/test/karma/test-app/components.d.ts b/test/karma/test-app/components.d.ts index 2b813deed56..9a9a9c1be92 100644 --- a/test/karma/test-app/components.d.ts +++ b/test/karma/test-app/components.d.ts @@ -42,8 +42,6 @@ export namespace Components { } interface SlotNgIf { } - interface SlotNoDefault { - } interface SlotReplaceWrapper { "href"?: string; } @@ -159,12 +157,6 @@ declare global { prototype: HTMLSlotNgIfElement; new (): HTMLSlotNgIfElement; }; - interface HTMLSlotNoDefaultElement extends Components.SlotNoDefault, HTMLStencilElement { - } - var HTMLSlotNoDefaultElement: { - prototype: HTMLSlotNoDefaultElement; - new (): HTMLSlotNoDefaultElement; - }; interface HTMLSlotReplaceWrapperElement extends Components.SlotReplaceWrapper, HTMLStencilElement { } var HTMLSlotReplaceWrapperElement: { @@ -213,7 +205,6 @@ declare global { "slot-nested-default-order-child": HTMLSlotNestedDefaultOrderChildElement; "slot-nested-default-order-parent": HTMLSlotNestedDefaultOrderParentElement; "slot-ng-if": HTMLSlotNgIfElement; - "slot-no-default": HTMLSlotNoDefaultElement; "slot-replace-wrapper": HTMLSlotReplaceWrapperElement; "slot-replace-wrapper-root": HTMLSlotReplaceWrapperRootElement; "stencil-sibling": HTMLStencilSiblingElement; @@ -258,8 +249,6 @@ declare namespace LocalJSX { } interface SlotNgIf { } - interface SlotNoDefault { - } interface SlotReplaceWrapper { "href"?: string; } @@ -289,7 +278,6 @@ declare namespace LocalJSX { "slot-nested-default-order-child": SlotNestedDefaultOrderChild; "slot-nested-default-order-parent": SlotNestedDefaultOrderParent; "slot-ng-if": SlotNgIf; - "slot-no-default": SlotNoDefault; "slot-replace-wrapper": SlotReplaceWrapper; "slot-replace-wrapper-root": SlotReplaceWrapperRoot; "stencil-sibling": StencilSibling; @@ -318,7 +306,6 @@ declare module "@stencil/core" { "slot-nested-default-order-child": LocalJSX.SlotNestedDefaultOrderChild & JSXBase.HTMLAttributes; "slot-nested-default-order-parent": LocalJSX.SlotNestedDefaultOrderParent & JSXBase.HTMLAttributes; "slot-ng-if": LocalJSX.SlotNgIf & JSXBase.HTMLAttributes; - "slot-no-default": LocalJSX.SlotNoDefault & JSXBase.HTMLAttributes; "slot-replace-wrapper": LocalJSX.SlotReplaceWrapper & JSXBase.HTMLAttributes; "slot-replace-wrapper-root": LocalJSX.SlotReplaceWrapperRoot & JSXBase.HTMLAttributes; "stencil-sibling": LocalJSX.StencilSibling & JSXBase.HTMLAttributes; diff --git a/test/karma/test-app/slot-no-default/index.html b/test/karma/test-app/slot-no-default/index.html deleted file mode 100644 index 5df6eb6bf65..00000000000 --- a/test/karma/test-app/slot-no-default/index.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - A-Show -
Header-No-Show
-
Default-Slot-No-Show
- -
Footer-Show
-
diff --git a/test/karma/test-app/slot-no-default/karma.spec.ts b/test/karma/test-app/slot-no-default/karma.spec.ts deleted file mode 100644 index a479873f8d6..00000000000 --- a/test/karma/test-app/slot-no-default/karma.spec.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { setupDomTests } from '../util'; - -describe('slot-no-default', function () { - const { setupDom, tearDownDom } = setupDomTests(document); - let app: HTMLElement; - - beforeEach(async () => { - app = await setupDom('/slot-no-default/index.html'); - }); - afterEach(tearDownDom); - - it('only renders slots that have a location', async () => { - const root = app.querySelector('slot-no-default'); - - const a = root.querySelector('a'); - expect(a.hasAttribute('hidden')).toBe(false); - - const header = root.querySelector('header'); - expect(header.hasAttribute('hidden')).toBe(true); - - const main = root.querySelector('main'); - expect(main.hasAttribute('hidden')).toBe(true); - - const nav = root.querySelector('nav'); - expect(nav.hasAttribute('hidden')).toBe(false); - - const footer = root.querySelector('footer'); - expect(footer.hasAttribute('hidden')).toBe(false); - }); -}); diff --git a/test/wdio/slot-no-default/cmp.test.tsx b/test/wdio/slot-no-default/cmp.test.tsx new file mode 100644 index 00000000000..d2c2b7b76f5 --- /dev/null +++ b/test/wdio/slot-no-default/cmp.test.tsx @@ -0,0 +1,28 @@ +import { h } from '@stencil/core'; +import { render } from '@wdio/browser-runner/stencil'; + +describe('slot-no-default', () => { + beforeEach(async () => { + render({ + template: () => ( + + A-Show +
Header-No-Show
+
Default-Slot-No-Show
+ + +
+ ), + }); + + await $('slot-no-default').waitForExist(); + }); + + it('only renders slots that have a location', async () => { + await expect($('slot-no-default a')).not.toHaveAttribute('hidden'); + await expect($('slot-no-default header')).toHaveAttribute('hidden', 'true'); + await expect($('slot-no-default main')).toHaveAttribute('hidden', 'true'); + await expect($('slot-no-default nav')).not.toHaveAttribute('hidden'); + await expect($('slot-no-default footer')).not.toHaveAttribute('hidden'); + }); +}); diff --git a/test/karma/test-app/slot-no-default/cmp.tsx b/test/wdio/slot-no-default/cmp.tsx similarity index 100% rename from test/karma/test-app/slot-no-default/cmp.tsx rename to test/wdio/slot-no-default/cmp.tsx