diff --git a/test/js/samples/css-custom-element-no-shadow-dom/_config.js b/test/js/samples/css-custom-element-no-shadow-dom/_config.js
new file mode 100644
index 0000000000..52d689af96
--- /dev/null
+++ b/test/js/samples/css-custom-element-no-shadow-dom/_config.js
@@ -0,0 +1,6 @@
+export default {
+ options: {
+ customElement: true,
+ shadowDom: false
+ }
+};
\ No newline at end of file
diff --git a/test/js/samples/css-custom-element-no-shadow-dom/expected.js b/test/js/samples/css-custom-element-no-shadow-dom/expected.js
new file mode 100644
index 0000000000..69cccb431b
--- /dev/null
+++ b/test/js/samples/css-custom-element-no-shadow-dom/expected.js
@@ -0,0 +1,54 @@
+/* generated by Svelte vX.Y.Z */
+import {
+ SvelteElement,
+ detach,
+ element,
+ init,
+ insert,
+ noop,
+ safe_not_equal
+} from "svelte/internal";
+
+function create_fragment(ctx) {
+ var h1;
+
+ return {
+ c() {
+ h1 = element("h1");
+ h1.textContent = "Hello world";
+ this.c = noop;
+ },
+
+ m(target, anchor) {
+ insert(target, h1, anchor);
+ },
+
+ p: noop,
+ i: noop,
+ o: noop,
+
+ d(detaching) {
+ if (detaching) {
+ detach(h1);
+ }
+ }
+ };
+}
+
+class Component extends SvelteElement {
+ constructor(options) {
+ super({ use_shadow_dom: true });
+
+ init(this, { target: this }, null, create_fragment, safe_not_equal, []);
+
+ if (options) {
+ if (options.target) {
+ insert(options.target, this, options.anchor);
+ }
+ }
+ }
+}
+
+customElements.define("custom-element", Component);
+
+export default Component;
\ No newline at end of file
diff --git a/test/js/samples/css-custom-element-no-shadow-dom/input.svelte b/test/js/samples/css-custom-element-no-shadow-dom/input.svelte
new file mode 100644
index 0000000000..ecfe1205d9
--- /dev/null
+++ b/test/js/samples/css-custom-element-no-shadow-dom/input.svelte
@@ -0,0 +1,9 @@
+