diff --git a/.gitignore b/.gitignore
index 785c6748d1d..e5434c395ce 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,6 +9,9 @@ yarn-error.log
packages/*/test/visual/*/screenshots/*/failed
packages/icons/test/visual/screenshots/failed
+# Generated Lit test files
+packages/*/test/*.generated.*
+
# Generated theme folders .ts files
packages/**/theme/**/*.d.ts
diff --git a/package.json b/package.json
index 33d2cf16a3e..675058a798f 100644
--- a/package.json
+++ b/package.json
@@ -5,8 +5,8 @@
"scripts": {
"analyze": "polymer analyze packages/**/vaadin-*.js > analysis.json && node scripts/prepareDocs.js && node scripts/buildWebtypes.js && node scripts/generateLumoAutoCompleteCss.js && ./scripts/buildThemeTypings.sh",
"build:ts": "tsc --build tsconfig.build.json",
- "debug": "web-test-runner --watch",
- "debug:it": "web-test-runner --watch --config web-test-runner-it.config.js",
+ "debug": "yarn test --watch",
+ "debug:it": "yarn test --watch --config web-test-runner-it.config.js",
"dist": "rimraf dist && yarn analyze && rollup -c rollup.config.js && cp analysis.json dist",
"docs": "yarn analyze && web-dev-server --node-resolve --open",
"icons": "lerna run icons",
@@ -18,16 +18,16 @@
"prepare": "husky",
"serve:dist": "web-dev-server --app-index dist/index.html --open",
"start": "web-dev-server --node-resolve --open /dev",
- "test": "web-test-runner",
- "test:firefox": "web-test-runner --config web-test-runner-firefox.config.js",
- "test:it": "web-test-runner --config web-test-runner-it.config.js",
- "test:lumo": "web-test-runner --config web-test-runner-lumo.config.js",
- "test:material": "web-test-runner --config web-test-runner-material.config.js",
- "test:snapshots": "web-test-runner --config web-test-runner-snapshots.config.js",
- "test:webkit": "web-test-runner --config web-test-runner-webkit.config.js",
- "update:lumo": "TEST_ENV=update web-test-runner --config web-test-runner-lumo.config.js",
- "update:material": "TEST_ENV=update web-test-runner --config web-test-runner-material.config.js",
- "update:snapshots": "web-test-runner --config web-test-runner-snapshots.config.js --update-snapshots"
+ "test": "node scripts/generateLitTests.js && web-test-runner",
+ "test:firefox": "yarn test --config web-test-runner-firefox.config.js",
+ "test:it": "yarn test --config web-test-runner-it.config.js",
+ "test:lumo": "yarn test --config web-test-runner-lumo.config.js",
+ "test:material": "yarn test --config web-test-runner-material.config.js",
+ "test:snapshots": "yarn test --config web-test-runner-snapshots.config.js",
+ "test:webkit": "yarn test --config web-test-runner-webkit.config.js",
+ "update:lumo": "TEST_ENV=update yarn test --config web-test-runner-lumo.config.js",
+ "update:material": "TEST_ENV=update yarn test --config web-test-runner-material.config.js",
+ "update:snapshots": "yarn test --config web-test-runner-snapshots.config.js --update-snapshots"
},
"devDependencies": {
"@fontsource/roboto": "^4.5.1",
diff --git a/packages/button/test/button-lit.test.ts b/packages/button/test/button-lit.test.ts
deleted file mode 100644
index 78e9b5d98bb..00000000000
--- a/packages/button/test/button-lit.test.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../src/vaadin-lit-button.js';
-import './button.common.js';
diff --git a/packages/button/test/button-polymer.test.ts b/packages/button/test/button-polymer.test.ts
deleted file mode 100644
index 1f22c1d5226..00000000000
--- a/packages/button/test/button-polymer.test.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../vaadin-button.js';
-import './button.common.js';
diff --git a/packages/button/test/button.common.ts b/packages/button/test/button.test.ts
similarity index 99%
rename from packages/button/test/button.common.ts
rename to packages/button/test/button.test.ts
index fa93127c00d..bbc6b55d2d0 100644
--- a/packages/button/test/button.common.ts
+++ b/packages/button/test/button.test.ts
@@ -2,6 +2,7 @@ import { expect } from '@vaadin/chai-plugins';
import { sendKeys } from '@vaadin/test-runner-commands';
import { fixtureSync, nextRender, nextUpdate } from '@vaadin/testing-helpers';
import sinon from 'sinon';
+import '../vaadin-button.js';
import type { Button } from '../vaadin-button.js';
describe('vaadin-button', () => {
diff --git a/packages/grid/test/accessibility-lit.test.js b/packages/grid/test/accessibility-lit.test.js
deleted file mode 100644
index 6d07f9aa142..00000000000
--- a/packages/grid/test/accessibility-lit.test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import '../theme/lumo/lit-all-imports.js';
-import '../src/lit-all-imports.js';
-import './accessibility.common.js';
diff --git a/packages/grid/test/accessibility-polymer.test.js b/packages/grid/test/accessibility-polymer.test.js
deleted file mode 100644
index d0132c10b48..00000000000
--- a/packages/grid/test/accessibility-polymer.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../all-imports.js';
-import './accessibility.common.js';
diff --git a/packages/grid/test/accessibility.common.js b/packages/grid/test/accessibility.test.js
similarity index 99%
rename from packages/grid/test/accessibility.common.js
rename to packages/grid/test/accessibility.test.js
index e2578656caf..cf6a1bf83cb 100644
--- a/packages/grid/test/accessibility.common.js
+++ b/packages/grid/test/accessibility.test.js
@@ -1,5 +1,6 @@
import { expect } from '@vaadin/chai-plugins';
import { fixtureSync, nextFrame } from '@vaadin/testing-helpers';
+import '../all-imports.js';
import { flushGrid } from './helpers.js';
describe('accessibility', () => {
diff --git a/packages/grid/test/array-data-provider-lit.test.js b/packages/grid/test/array-data-provider-lit.test.js
deleted file mode 100644
index bc92c6d304e..00000000000
--- a/packages/grid/test/array-data-provider-lit.test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import '../theme/lumo/lit-all-imports.js';
-import '../src/lit-all-imports.js';
-import './array-data-provider.common.js';
diff --git a/packages/grid/test/array-data-provider-polymer.test.js b/packages/grid/test/array-data-provider-polymer.test.js
deleted file mode 100644
index 59af8042566..00000000000
--- a/packages/grid/test/array-data-provider-polymer.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../all-imports.js';
-import './array-data-provider.common.js';
diff --git a/packages/grid/test/array-data-provider.common.js b/packages/grid/test/array-data-provider.test.js
similarity index 99%
rename from packages/grid/test/array-data-provider.common.js
rename to packages/grid/test/array-data-provider.test.js
index 9f1606b1a61..b0d82b11f7d 100644
--- a/packages/grid/test/array-data-provider.common.js
+++ b/packages/grid/test/array-data-provider.test.js
@@ -1,6 +1,7 @@
import { expect } from '@vaadin/chai-plugins';
import { click, fixtureSync, nextFrame } from '@vaadin/testing-helpers';
import sinon from 'sinon';
+import '../all-imports.js';
import { flushGrid, getBodyCellContent, getRows } from './helpers.js';
describe('array data provider', () => {
diff --git a/packages/grid/test/basic-lit.test.js b/packages/grid/test/basic-lit.test.js
deleted file mode 100644
index 3c2dd168d97..00000000000
--- a/packages/grid/test/basic-lit.test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import '../theme/lumo/lit-all-imports.js';
-import '../src/vaadin-lit-grid.js';
-import './basic.common.js';
diff --git a/packages/grid/test/basic-polymer.test.js b/packages/grid/test/basic-polymer.test.js
deleted file mode 100644
index dd340b6c36a..00000000000
--- a/packages/grid/test/basic-polymer.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../vaadin-grid.js';
-import './basic.common.js';
diff --git a/packages/grid/test/basic.common.js b/packages/grid/test/basic.test.js
similarity index 99%
rename from packages/grid/test/basic.common.js
rename to packages/grid/test/basic.test.js
index 9372d3b2ef7..00565589237 100644
--- a/packages/grid/test/basic.common.js
+++ b/packages/grid/test/basic.test.js
@@ -1,6 +1,7 @@
import { expect } from '@vaadin/chai-plugins';
import { aTimeout, fixtureSync, nextFrame, oneEvent } from '@vaadin/testing-helpers';
import sinon from 'sinon';
+import '../all-imports.js';
import {
flushGrid,
getBodyCellContent,
diff --git a/packages/grid/test/column-auto-width-lit.test.js b/packages/grid/test/column-auto-width-lit.test.js
deleted file mode 100644
index b0a896af7e9..00000000000
--- a/packages/grid/test/column-auto-width-lit.test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import '../theme/lumo/lit-all-imports.js';
-import '../src/lit-all-imports.js';
-import './column-auto-width.common.js';
diff --git a/packages/grid/test/column-auto-width-polymer.test.js b/packages/grid/test/column-auto-width-polymer.test.js
deleted file mode 100644
index 49f817843d8..00000000000
--- a/packages/grid/test/column-auto-width-polymer.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../all-imports.js';
-import './column-auto-width.common.js';
diff --git a/packages/grid/test/column-auto-width.common.js b/packages/grid/test/column-auto-width.test.js
similarity index 99%
rename from packages/grid/test/column-auto-width.common.js
rename to packages/grid/test/column-auto-width.test.js
index 7ed5ed1ea44..dd594d3818e 100644
--- a/packages/grid/test/column-auto-width.common.js
+++ b/packages/grid/test/column-auto-width.test.js
@@ -1,6 +1,7 @@
import { expect } from '@vaadin/chai-plugins';
import { aTimeout, fixtureSync, nextFrame, oneEvent } from '@vaadin/testing-helpers';
import sinon from 'sinon';
+import '../all-imports.js';
import { flushGrid, getContainerCell, getHeaderCell } from './helpers.js';
function getCellIntrinsicWidth(cell) {
diff --git a/packages/grid/test/column-group-lit.test.js b/packages/grid/test/column-group-lit.test.js
deleted file mode 100644
index 66f9784951e..00000000000
--- a/packages/grid/test/column-group-lit.test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import '../theme/lumo/lit-all-imports.js';
-import '../src/lit-all-imports.js';
-import './column-group.common.js';
diff --git a/packages/grid/test/column-group-polymer.test.js b/packages/grid/test/column-group-polymer.test.js
deleted file mode 100644
index 71032c498eb..00000000000
--- a/packages/grid/test/column-group-polymer.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../all-imports.js';
-import './column-group.common.js';
diff --git a/packages/grid/test/column-group.common.js b/packages/grid/test/column-group.test.js
similarity index 99%
rename from packages/grid/test/column-group.common.js
rename to packages/grid/test/column-group.test.js
index ad7a40eda45..41c71b45283 100644
--- a/packages/grid/test/column-group.common.js
+++ b/packages/grid/test/column-group.test.js
@@ -1,6 +1,7 @@
import { expect } from '@vaadin/chai-plugins';
import { fixtureSync, nextFrame, nextRender } from '@vaadin/testing-helpers';
import sinon from 'sinon';
+import '../all-imports.js';
import { flushGrid, getContainerCell } from './helpers.js';
describe('column group', () => {
diff --git a/packages/grid/test/column-groups-lit.test.js b/packages/grid/test/column-groups-lit.test.js
deleted file mode 100644
index 5e9fc601bdc..00000000000
--- a/packages/grid/test/column-groups-lit.test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import '../theme/lumo/vaadin-grid-styles.js';
-import '../src/vaadin-lit-grid.js';
-import '../src/vaadin-lit-grid-column-group.js';
-import './column-groups.common.js';
diff --git a/packages/grid/test/column-groups-polymer.test.js b/packages/grid/test/column-groups-polymer.test.js
deleted file mode 100644
index 76ec52bf5ab..00000000000
--- a/packages/grid/test/column-groups-polymer.test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import '../vaadin-grid.js';
-import '../vaadin-grid-column-group.js';
-import './column-groups.common.js';
diff --git a/packages/grid/test/column-groups.common.js b/packages/grid/test/column-groups.test.js
similarity index 99%
rename from packages/grid/test/column-groups.common.js
rename to packages/grid/test/column-groups.test.js
index 56956acd71e..4b7d3377a0b 100644
--- a/packages/grid/test/column-groups.common.js
+++ b/packages/grid/test/column-groups.test.js
@@ -1,6 +1,8 @@
import { expect } from '@vaadin/chai-plugins';
import { fixtureSync, nextFrame, nextRender, nextResize } from '@vaadin/testing-helpers';
import sinon from 'sinon';
+import '../vaadin-grid.js';
+import '../vaadin-grid-column-group.js';
import {
attributeRenderer,
flushGrid,
diff --git a/packages/grid/test/column-lit.test.js b/packages/grid/test/column-lit.test.js
deleted file mode 100644
index 7a3ec09ea98..00000000000
--- a/packages/grid/test/column-lit.test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import '../theme/lumo/lit-all-imports.js';
-import '../src/lit-all-imports.js';
-import './column.common.js';
diff --git a/packages/grid/test/column-polymer.test.js b/packages/grid/test/column-polymer.test.js
deleted file mode 100644
index 481374932d4..00000000000
--- a/packages/grid/test/column-polymer.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../all-imports.js';
-import './column.common.js';
diff --git a/packages/grid/test/column-rendering-lit.test.js b/packages/grid/test/column-rendering-lit.test.js
deleted file mode 100644
index cde7252d24c..00000000000
--- a/packages/grid/test/column-rendering-lit.test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import '../theme/lumo/lit-all-imports.js';
-import '../src/lit-all-imports.js';
-import './column-rendering.common.js';
diff --git a/packages/grid/test/column-rendering-polymer.test.js b/packages/grid/test/column-rendering-polymer.test.js
deleted file mode 100644
index 3dad79f2636..00000000000
--- a/packages/grid/test/column-rendering-polymer.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../all-imports.js';
-import './column-rendering.common.js';
diff --git a/packages/grid/test/column-rendering.common.js b/packages/grid/test/column-rendering.test.js
similarity index 99%
rename from packages/grid/test/column-rendering.common.js
rename to packages/grid/test/column-rendering.test.js
index 7b125bfb93a..69f80af67a7 100644
--- a/packages/grid/test/column-rendering.common.js
+++ b/packages/grid/test/column-rendering.test.js
@@ -1,6 +1,7 @@
import { expect } from '@vaadin/chai-plugins';
import { aTimeout, fixtureSync, keyDownOn, nextFrame, nextResize, oneEvent } from '@vaadin/testing-helpers';
import Sinon from 'sinon';
+import '../all-imports.js';
import { flushGrid, getCellContent, getHeaderCellContent } from './helpers.js';
['ltr', 'rtl'].forEach((dir) => {
diff --git a/packages/grid/test/column-reordering-lit.test.js b/packages/grid/test/column-reordering-lit.test.js
deleted file mode 100644
index c5673d161c4..00000000000
--- a/packages/grid/test/column-reordering-lit.test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import '../theme/lumo/lit-all-imports.js';
-import '../src/lit-all-imports.js';
-import './column-reordering.common.js';
diff --git a/packages/grid/test/column-reordering-polymer.test.js b/packages/grid/test/column-reordering-polymer.test.js
deleted file mode 100644
index f7bfd7b2f38..00000000000
--- a/packages/grid/test/column-reordering-polymer.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../all-imports.js';
-import './column-reordering.common.js';
diff --git a/packages/grid/test/column-reordering.common.js b/packages/grid/test/column-reordering.test.js
similarity index 99%
rename from packages/grid/test/column-reordering.common.js
rename to packages/grid/test/column-reordering.test.js
index 6f1802b3510..4f063959fd7 100644
--- a/packages/grid/test/column-reordering.common.js
+++ b/packages/grid/test/column-reordering.test.js
@@ -1,6 +1,7 @@
import { expect } from '@vaadin/chai-plugins';
import { aTimeout, fixtureSync, nextFrame } from '@vaadin/testing-helpers';
import sinon from 'sinon';
+import '../all-imports.js';
import { isTouch } from '@vaadin/component-base/src/browser-utils.js';
import {
attributeRenderer,
diff --git a/packages/grid/test/column-resizing-lit.test.js b/packages/grid/test/column-resizing-lit.test.js
deleted file mode 100644
index deeea2a180f..00000000000
--- a/packages/grid/test/column-resizing-lit.test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import '../theme/lumo/lit-all-imports.js';
-import '../src/lit-all-imports.js';
-import './column-resizing.common.js';
diff --git a/packages/grid/test/column-resizing-polymer.test.js b/packages/grid/test/column-resizing-polymer.test.js
deleted file mode 100644
index 6824c7d7463..00000000000
--- a/packages/grid/test/column-resizing-polymer.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../all-imports.js';
-import './column-resizing.common.js';
diff --git a/packages/grid/test/column-resizing.common.js b/packages/grid/test/column-resizing.test.js
similarity index 99%
rename from packages/grid/test/column-resizing.common.js
rename to packages/grid/test/column-resizing.test.js
index 0aee5e22ea4..538287790e2 100644
--- a/packages/grid/test/column-resizing.common.js
+++ b/packages/grid/test/column-resizing.test.js
@@ -1,6 +1,7 @@
import { expect } from '@vaadin/chai-plugins';
import { fixtureSync, listenOnce, nextFrame, nextRender } from '@vaadin/testing-helpers';
import sinon from 'sinon';
+import '../all-imports.js';
import {
dragAndDropOver,
fire,
diff --git a/packages/grid/test/column.common.js b/packages/grid/test/column.test.js
similarity index 99%
rename from packages/grid/test/column.common.js
rename to packages/grid/test/column.test.js
index 0c4aa154daa..df3a96963e1 100644
--- a/packages/grid/test/column.common.js
+++ b/packages/grid/test/column.test.js
@@ -1,6 +1,7 @@
import { expect } from '@vaadin/chai-plugins';
import { fixtureSync, nextFrame, nextRender } from '@vaadin/testing-helpers';
import sinon from 'sinon';
+import '../all-imports.js';
import { html, PolymerElement } from '@polymer/polymer/polymer-element.js';
import {
flushGrid,
diff --git a/packages/grid/test/data-provider-lit.test.js b/packages/grid/test/data-provider-lit.test.js
deleted file mode 100644
index 28b5cbc55b4..00000000000
--- a/packages/grid/test/data-provider-lit.test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import './data-provider.styles.js';
-import '../theme/lumo/lit-all-imports.js';
-import '../src/lit-all-imports.js';
-import './data-provider.common.js';
diff --git a/packages/grid/test/data-provider-polymer.test.js b/packages/grid/test/data-provider-polymer.test.js
deleted file mode 100644
index 691bb423d33..00000000000
--- a/packages/grid/test/data-provider-polymer.test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import './data-provider.styles.js';
-import '../all-imports.js';
-import './data-provider.common.js';
diff --git a/packages/grid/test/data-provider.common.js b/packages/grid/test/data-provider.test.js
similarity index 99%
rename from packages/grid/test/data-provider.common.js
rename to packages/grid/test/data-provider.test.js
index 2241c56304d..2d6eaaa8337 100644
--- a/packages/grid/test/data-provider.common.js
+++ b/packages/grid/test/data-provider.test.js
@@ -1,6 +1,8 @@
import { expect } from '@vaadin/chai-plugins';
import { aTimeout, fixtureSync, nextFrame } from '@vaadin/testing-helpers';
import sinon from 'sinon';
+import './data-provider.styles.js';
+import '../all-imports.js';
import { html, PolymerElement } from '@polymer/polymer/polymer-element.js';
import {
flushGrid,
diff --git a/packages/grid/test/deprecated-api-lit.test.js b/packages/grid/test/deprecated-api-lit.test.js
deleted file mode 100644
index ef3f71a335d..00000000000
--- a/packages/grid/test/deprecated-api-lit.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../src/vaadin-lit-grid.js';
-import './deprecated-api.common.js';
diff --git a/packages/grid/test/deprecated-api-polymer.test.js b/packages/grid/test/deprecated-api-polymer.test.js
deleted file mode 100644
index 8d9416d8e9e..00000000000
--- a/packages/grid/test/deprecated-api-polymer.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../vaadin-grid.js';
-import './deprecated-api.common.js';
diff --git a/packages/grid/test/deprecated-api.common.js b/packages/grid/test/deprecated-api.test.js
similarity index 99%
rename from packages/grid/test/deprecated-api.common.js
rename to packages/grid/test/deprecated-api.test.js
index 87459beca43..5c8c09d2d93 100644
--- a/packages/grid/test/deprecated-api.common.js
+++ b/packages/grid/test/deprecated-api.test.js
@@ -1,6 +1,7 @@
import { expect } from '@vaadin/chai-plugins';
import { fixtureSync } from '@vaadin/testing-helpers';
import sinon from 'sinon';
+import '../vaadin-grid.js';
import { flushGrid } from './helpers.js';
describe('deprecated API', () => {
diff --git a/packages/grid/test/disabled-lit.test.js b/packages/grid/test/disabled-lit.test.js
deleted file mode 100644
index 80ad4b33e73..00000000000
--- a/packages/grid/test/disabled-lit.test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import '../theme/lumo/lit-all-imports.js';
-import '../src/lit-all-imports.js';
-import './disabled.common.js';
diff --git a/packages/grid/test/disabled-polymer.test.js b/packages/grid/test/disabled-polymer.test.js
deleted file mode 100644
index e5f96be0906..00000000000
--- a/packages/grid/test/disabled-polymer.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../all-imports.js';
-import './disabled.common.js';
diff --git a/packages/grid/test/disabled.common.js b/packages/grid/test/disabled.test.js
similarity index 98%
rename from packages/grid/test/disabled.common.js
rename to packages/grid/test/disabled.test.js
index 0739c11523d..78e515516f5 100644
--- a/packages/grid/test/disabled.common.js
+++ b/packages/grid/test/disabled.test.js
@@ -1,6 +1,7 @@
import { expect } from '@vaadin/chai-plugins';
import { sendKeys } from '@vaadin/test-runner-commands';
import { fixtureSync, nextFrame } from '@vaadin/testing-helpers';
+import '../all-imports.js';
import { flushGrid } from './helpers.js';
describe('disabled', () => {
diff --git a/packages/grid/test/drag-and-drop-lit.test.js b/packages/grid/test/drag-and-drop-lit.test.js
deleted file mode 100644
index 66eed4163f7..00000000000
--- a/packages/grid/test/drag-and-drop-lit.test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import '../theme/lumo/lit-all-imports.js';
-import '../src/lit-all-imports.js';
-import './drag-and-drop.common.js';
diff --git a/packages/grid/test/drag-and-drop-polymer.test.js b/packages/grid/test/drag-and-drop-polymer.test.js
deleted file mode 100644
index b78798e6c29..00000000000
--- a/packages/grid/test/drag-and-drop-polymer.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../vaadin-grid.js';
-import './drag-and-drop.common.js';
diff --git a/packages/grid/test/drag-and-drop.common.js b/packages/grid/test/drag-and-drop.test.js
similarity index 99%
rename from packages/grid/test/drag-and-drop.common.js
rename to packages/grid/test/drag-and-drop.test.js
index 9d09d950001..3ecd344665f 100644
--- a/packages/grid/test/drag-and-drop.common.js
+++ b/packages/grid/test/drag-and-drop.test.js
@@ -2,6 +2,7 @@ import { expect } from '@vaadin/chai-plugins';
import { resetMouse, sendMouse } from '@vaadin/test-runner-commands';
import { aTimeout, fixtureSync, listenOnce, nextFrame, oneEvent } from '@vaadin/testing-helpers';
import sinon from 'sinon';
+import '../vaadin-grid.js';
import { hover } from '@vaadin/button/test/visual/helpers.js';
import { flushGrid, getBodyCellContent, getFirstCell, getRowBodyCells, getRows } from './helpers.js';
diff --git a/packages/grid/test/dynamic-item-size-lit.test.js b/packages/grid/test/dynamic-item-size-lit.test.js
deleted file mode 100644
index e23fad4bb68..00000000000
--- a/packages/grid/test/dynamic-item-size-lit.test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import '../theme/lumo/lit-all-imports.js';
-import '../src/lit-all-imports.js';
-import './dynamic-item-size.common.js';
diff --git a/packages/grid/test/dynamic-item-size-polymer.test.js b/packages/grid/test/dynamic-item-size-polymer.test.js
deleted file mode 100644
index 519b045e39c..00000000000
--- a/packages/grid/test/dynamic-item-size-polymer.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../vaadin-grid.js';
-import './dynamic-item-size.common.js';
diff --git a/packages/grid/test/dynamic-item-size.common.js b/packages/grid/test/dynamic-item-size.test.js
similarity index 97%
rename from packages/grid/test/dynamic-item-size.common.js
rename to packages/grid/test/dynamic-item-size.test.js
index 745c09ed269..3a0f5e4701e 100644
--- a/packages/grid/test/dynamic-item-size.common.js
+++ b/packages/grid/test/dynamic-item-size.test.js
@@ -1,5 +1,6 @@
import { expect } from '@vaadin/chai-plugins';
import { fixtureSync } from '@vaadin/testing-helpers';
+import '../vaadin-grid.js';
import { css } from 'lit';
import { flushGrid, getFirstVisibleItem, infiniteDataProvider } from './helpers.js';
diff --git a/packages/grid/test/event-context-lit.test.js b/packages/grid/test/event-context-lit.test.js
deleted file mode 100644
index 2619312022e..00000000000
--- a/packages/grid/test/event-context-lit.test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import '../theme/lumo/lit-all-imports.js';
-import '../src/lit-all-imports.js';
-import './event-context.common.js';
diff --git a/packages/grid/test/event-context-polymer.test.js b/packages/grid/test/event-context-polymer.test.js
deleted file mode 100644
index 23eb1db785a..00000000000
--- a/packages/grid/test/event-context-polymer.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../all-imports.js';
-import './event-context.common.js';
diff --git a/packages/grid/test/event-context.common.js b/packages/grid/test/event-context.test.js
similarity index 99%
rename from packages/grid/test/event-context.common.js
rename to packages/grid/test/event-context.test.js
index 41fc0f3795b..7a6567f5a4b 100644
--- a/packages/grid/test/event-context.common.js
+++ b/packages/grid/test/event-context.test.js
@@ -1,5 +1,6 @@
import { expect } from '@vaadin/chai-plugins';
import { click, fixtureSync } from '@vaadin/testing-helpers';
+import '../all-imports.js';
import { flushGrid, getContainerCell } from './helpers.js';
describe('event context', () => {
diff --git a/packages/grid/test/extension-lit.test.js b/packages/grid/test/extension-lit.test.js
deleted file mode 100644
index 86634c8ff9e..00000000000
--- a/packages/grid/test/extension-lit.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../src/vaadin-lit-grid.js';
-import './extension.common.js';
diff --git a/packages/grid/test/extension-polymer.test.js b/packages/grid/test/extension-polymer.test.js
deleted file mode 100644
index b064aa1bb58..00000000000
--- a/packages/grid/test/extension-polymer.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../src/vaadin-grid.js';
-import './extension.common.js';
diff --git a/packages/grid/test/extension.common.js b/packages/grid/test/extension.test.js
similarity index 92%
rename from packages/grid/test/extension.common.js
rename to packages/grid/test/extension.test.js
index 67dda571ec3..dddbe934f0d 100644
--- a/packages/grid/test/extension.common.js
+++ b/packages/grid/test/extension.test.js
@@ -1,7 +1,7 @@
import { expect } from '@vaadin/chai-plugins';
import { fixtureSync } from '@vaadin/testing-helpers';
+import { Grid } from '../src/vaadin-grid.js';
-const Grid = customElements.get('vaadin-grid');
customElements.define('vaadin-custom-grid', class CustomGrid extends Grid {});
describe('extended grid', () => {
diff --git a/packages/grid/test/filtering-lit.test.js b/packages/grid/test/filtering-lit.test.js
deleted file mode 100644
index e197ec8440d..00000000000
--- a/packages/grid/test/filtering-lit.test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import '../theme/lumo/lit-all-imports.js';
-import '../src/lit-all-imports.js';
-import './filtering.common.js';
diff --git a/packages/grid/test/filtering-polymer.test.js b/packages/grid/test/filtering-polymer.test.js
deleted file mode 100644
index bd1a4a8849f..00000000000
--- a/packages/grid/test/filtering-polymer.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../all-imports.js';
-import './filtering.common.js';
diff --git a/packages/grid/test/filtering.common.js b/packages/grid/test/filtering.test.js
similarity index 99%
rename from packages/grid/test/filtering.common.js
rename to packages/grid/test/filtering.test.js
index 7f8e1f21864..50fd1382905 100644
--- a/packages/grid/test/filtering.common.js
+++ b/packages/grid/test/filtering.test.js
@@ -1,6 +1,7 @@
import { expect } from '@vaadin/chai-plugins';
import { fire, fixtureSync, nextFrame, nextRender, oneEvent } from '@vaadin/testing-helpers';
import sinon from 'sinon';
+import '../all-imports.js';
import { html, LitElement } from 'lit';
import { flushGrid, getBodyCellContent, getHeaderCellContent, getVisibleItems, scrollToEnd } from './helpers.js';
diff --git a/packages/grid/test/frozen-columns-lit.test.js b/packages/grid/test/frozen-columns-lit.test.js
deleted file mode 100644
index 676d47839f7..00000000000
--- a/packages/grid/test/frozen-columns-lit.test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import '../theme/lumo/lit-all-imports.js';
-import '../src/lit-all-imports.js';
-import './frozen-columns.common.js';
diff --git a/packages/grid/test/frozen-columns-polymer.test.js b/packages/grid/test/frozen-columns-polymer.test.js
deleted file mode 100644
index 34fc19474d5..00000000000
--- a/packages/grid/test/frozen-columns-polymer.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../vaadin-grid.js';
-import './frozen-columns.common.js';
diff --git a/packages/grid/test/frozen-columns.common.js b/packages/grid/test/frozen-columns.test.js
similarity index 99%
rename from packages/grid/test/frozen-columns.common.js
rename to packages/grid/test/frozen-columns.test.js
index 4131969bf8b..5f8e483738c 100644
--- a/packages/grid/test/frozen-columns.common.js
+++ b/packages/grid/test/frozen-columns.test.js
@@ -2,6 +2,7 @@ import { expect } from '@vaadin/chai-plugins';
import { resetMouse, sendMouse } from '@vaadin/test-runner-commands';
import { fixtureSync, listenOnce, nextRender, nextResize } from '@vaadin/testing-helpers';
import sinon from 'sinon';
+import '../vaadin-grid.js';
import { isElementFocused } from '@vaadin/a11y-base/src/focus-utils.js';
import { setNormalizedScrollLeft } from '@vaadin/component-base/src/dir-utils.js';
import { flushGrid, getRowCells, getRows, infiniteDataProvider, isWithinParentConstraints } from './helpers.js';
diff --git a/packages/grid/test/grid-wrapper-lit.test.js b/packages/grid/test/grid-wrapper-lit.test.js
deleted file mode 100644
index 2f394b687d4..00000000000
--- a/packages/grid/test/grid-wrapper-lit.test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import '../theme/lumo/lit-all-imports.js';
-import '../src/lit-all-imports.js';
-import './grid-wrapper.common.js';
diff --git a/packages/grid/test/grid-wrapper-polymer.test.js b/packages/grid/test/grid-wrapper-polymer.test.js
deleted file mode 100644
index 00557852c1c..00000000000
--- a/packages/grid/test/grid-wrapper-polymer.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../all-imports.js';
-import './grid-wrapper.common.js';
diff --git a/packages/grid/test/grid-wrapper.common.js b/packages/grid/test/grid-wrapper.test.js
similarity index 98%
rename from packages/grid/test/grid-wrapper.common.js
rename to packages/grid/test/grid-wrapper.test.js
index 156b85ff294..9f1aae4850c 100644
--- a/packages/grid/test/grid-wrapper.common.js
+++ b/packages/grid/test/grid-wrapper.test.js
@@ -1,5 +1,6 @@
import { expect } from '@vaadin/chai-plugins';
import { fixtureSync, nextFrame } from '@vaadin/testing-helpers';
+import '../all-imports.js';
import { flushGrid, getBodyCellContent } from './helpers.js';
class GridWrapper extends HTMLElement {
diff --git a/packages/grid/test/hidden-grid-lit.test.js b/packages/grid/test/hidden-grid-lit.test.js
deleted file mode 100644
index 1cd88cf94c5..00000000000
--- a/packages/grid/test/hidden-grid-lit.test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import '../theme/lumo/lit-all-imports.js';
-import '../src/lit-all-imports.js';
-import './hidden-grid.common.js';
diff --git a/packages/grid/test/hidden-grid-polymer.test.js b/packages/grid/test/hidden-grid-polymer.test.js
deleted file mode 100644
index e230c8f8625..00000000000
--- a/packages/grid/test/hidden-grid-polymer.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../vaadin-grid.js';
-import './hidden-grid.common.js';
diff --git a/packages/grid/test/hidden-grid.common.js b/packages/grid/test/hidden-grid.test.js
similarity index 98%
rename from packages/grid/test/hidden-grid.common.js
rename to packages/grid/test/hidden-grid.test.js
index f96a808ce99..7ed192f5acc 100644
--- a/packages/grid/test/hidden-grid.common.js
+++ b/packages/grid/test/hidden-grid.test.js
@@ -2,6 +2,7 @@ import { expect } from '@vaadin/chai-plugins';
import { sendKeys } from '@vaadin/test-runner-commands';
import { fixtureSync, nextFrame, nextRender, oneEvent } from '@vaadin/testing-helpers';
import sinon from 'sinon';
+import '../vaadin-grid.js';
import { fire, flushGrid, getBodyCellContent, getHeaderCell, infiniteDataProvider } from './helpers.js';
describe('hidden grid', () => {
diff --git a/packages/grid/test/keyboard-interaction-mode-lit.test.js b/packages/grid/test/keyboard-interaction-mode-lit.test.js
deleted file mode 100644
index 08cf6d39eb8..00000000000
--- a/packages/grid/test/keyboard-interaction-mode-lit.test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import '../theme/lumo/lit-all-imports.js';
-import '../src/lit-all-imports.js';
-import './keyboard-interaction-mode.common.js';
diff --git a/packages/grid/test/keyboard-interaction-mode-polymer.test.js b/packages/grid/test/keyboard-interaction-mode-polymer.test.js
deleted file mode 100644
index 5ac05ed2d82..00000000000
--- a/packages/grid/test/keyboard-interaction-mode-polymer.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../all-imports.js';
-import './keyboard-interaction-mode.common.js';
diff --git a/packages/grid/test/keyboard-interaction-mode.common.js b/packages/grid/test/keyboard-interaction-mode.test.js
similarity index 99%
rename from packages/grid/test/keyboard-interaction-mode.common.js
rename to packages/grid/test/keyboard-interaction-mode.test.js
index 41f4f4de6af..3d290ad5d8b 100644
--- a/packages/grid/test/keyboard-interaction-mode.common.js
+++ b/packages/grid/test/keyboard-interaction-mode.test.js
@@ -2,6 +2,7 @@ import { expect } from '@vaadin/chai-plugins';
import { sendKeys } from '@vaadin/test-runner-commands';
import { aTimeout, fixtureSync, keyDownOn, nextFrame, nextRender } from '@vaadin/testing-helpers';
import sinon from 'sinon';
+import '../all-imports.js';
import { getDeepActiveElement } from '@vaadin/a11y-base/src/focus-utils.js';
import { flushGrid, getCellContent, getFocusedCellIndex, getFocusedRowIndex } from './helpers.js';
diff --git a/packages/grid/test/keyboard-navigation-cell-button-lit.test.js b/packages/grid/test/keyboard-navigation-cell-button-lit.test.js
deleted file mode 100644
index b2f44f6b90e..00000000000
--- a/packages/grid/test/keyboard-navigation-cell-button-lit.test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import '../theme/lumo/lit-all-imports.js';
-import '../src/lit-all-imports.js';
-import './keyboard-navigation-cell-button.common.js';
diff --git a/packages/grid/test/keyboard-navigation-cell-button-polymer.test.js b/packages/grid/test/keyboard-navigation-cell-button-polymer.test.js
deleted file mode 100644
index 83be3d32fdd..00000000000
--- a/packages/grid/test/keyboard-navigation-cell-button-polymer.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../vaadin-grid.js';
-import './keyboard-navigation-cell-button.common.js';
diff --git a/packages/grid/test/keyboard-navigation-cell-button.common.js b/packages/grid/test/keyboard-navigation-cell-button.test.js
similarity index 99%
rename from packages/grid/test/keyboard-navigation-cell-button.common.js
rename to packages/grid/test/keyboard-navigation-cell-button.test.js
index ec575664efb..2e0f57fc22b 100644
--- a/packages/grid/test/keyboard-navigation-cell-button.common.js
+++ b/packages/grid/test/keyboard-navigation-cell-button.test.js
@@ -1,6 +1,7 @@
import { expect } from '@vaadin/chai-plugins';
import { arrowLeft, arrowRight, aTimeout, fixtureSync } from '@vaadin/testing-helpers';
import sinon from 'sinon';
+import '../vaadin-grid.js';
import { flushGrid } from './helpers.js';
let grid;
diff --git a/packages/grid/test/keyboard-navigation-lit.test.js b/packages/grid/test/keyboard-navigation-lit.test.js
deleted file mode 100644
index 51e6d0649ae..00000000000
--- a/packages/grid/test/keyboard-navigation-lit.test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import '../theme/lumo/lit-all-imports.js';
-import '../src/lit-all-imports.js';
-import './keyboard-navigation.common.js';
diff --git a/packages/grid/test/keyboard-navigation-polymer.test.js b/packages/grid/test/keyboard-navigation-polymer.test.js
deleted file mode 100644
index f91b7005314..00000000000
--- a/packages/grid/test/keyboard-navigation-polymer.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../all-imports.js';
-import './keyboard-navigation.common.js';
diff --git a/packages/grid/test/keyboard-navigation-row-focus-lit.test.js b/packages/grid/test/keyboard-navigation-row-focus-lit.test.js
deleted file mode 100644
index b7db4c1ced3..00000000000
--- a/packages/grid/test/keyboard-navigation-row-focus-lit.test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import '../theme/lumo/lit-all-imports.js';
-import '../src/lit-all-imports.js';
-import './keyboard-navigation-row-focus.common.js';
diff --git a/packages/grid/test/keyboard-navigation-row-focus-polymer.test.js b/packages/grid/test/keyboard-navigation-row-focus-polymer.test.js
deleted file mode 100644
index 7d658df946c..00000000000
--- a/packages/grid/test/keyboard-navigation-row-focus-polymer.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../src/all-imports.js';
-import './keyboard-navigation-row-focus.common.js';
diff --git a/packages/grid/test/keyboard-navigation-row-focus.common.js b/packages/grid/test/keyboard-navigation-row-focus.test.js
similarity index 99%
rename from packages/grid/test/keyboard-navigation-row-focus.common.js
rename to packages/grid/test/keyboard-navigation-row-focus.test.js
index 9610cc79921..3abc915c99f 100644
--- a/packages/grid/test/keyboard-navigation-row-focus.common.js
+++ b/packages/grid/test/keyboard-navigation-row-focus.test.js
@@ -8,6 +8,7 @@ import {
nextRender,
up as mouseUp,
} from '@vaadin/testing-helpers';
+import '../src/all-imports.js';
import { flushGrid, getCellContent, getFocusedCellIndex, getFocusedRowIndex } from './helpers.js';
let grid, header, footer, body;
diff --git a/packages/grid/test/keyboard-navigation.common.js b/packages/grid/test/keyboard-navigation.test.js
similarity index 99%
rename from packages/grid/test/keyboard-navigation.common.js
rename to packages/grid/test/keyboard-navigation.test.js
index 83ea2bf7c6a..f7be970a960 100644
--- a/packages/grid/test/keyboard-navigation.common.js
+++ b/packages/grid/test/keyboard-navigation.test.js
@@ -15,6 +15,7 @@ import {
up as mouseUp,
} from '@vaadin/testing-helpers';
import sinon from 'sinon';
+import '../all-imports.js';
import {
attributeRenderer,
flushGrid,
diff --git a/packages/grid/test/light-dom-observing-lit.test.js b/packages/grid/test/light-dom-observing-lit.test.js
deleted file mode 100644
index 9a5230ff9dc..00000000000
--- a/packages/grid/test/light-dom-observing-lit.test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import '../theme/lumo/lit-all-imports.js';
-import '../src/lit-all-imports.js';
-import './light-dom-observing.common.js';
diff --git a/packages/grid/test/light-dom-observing-polymer.test.js b/packages/grid/test/light-dom-observing-polymer.test.js
deleted file mode 100644
index 10e12c0a4af..00000000000
--- a/packages/grid/test/light-dom-observing-polymer.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../all-imports.js';
-import './light-dom-observing.common.js';
diff --git a/packages/grid/test/light-dom-observing.common.js b/packages/grid/test/light-dom-observing.test.js
similarity index 99%
rename from packages/grid/test/light-dom-observing.common.js
rename to packages/grid/test/light-dom-observing.test.js
index 6c868aeec1b..1162b4f2625 100644
--- a/packages/grid/test/light-dom-observing.common.js
+++ b/packages/grid/test/light-dom-observing.test.js
@@ -1,6 +1,7 @@
import { expect } from '@vaadin/chai-plugins';
import { fixtureSync, nextFrame, nextRender } from '@vaadin/testing-helpers';
import sinon from 'sinon';
+import '../all-imports.js';
import { html, PolymerElement } from '@polymer/polymer/polymer-element.js';
import {
attributeRenderer,
diff --git a/packages/grid/test/lit-lit.test.js b/packages/grid/test/lit-lit.test.js
deleted file mode 100644
index a8eb05f5c40..00000000000
--- a/packages/grid/test/lit-lit.test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import '../theme/lumo/lit-all-imports.js';
-import '../src/lit-all-imports.js';
-import './lit.common.js';
diff --git a/packages/grid/test/lit-polymer.test.js b/packages/grid/test/lit-polymer.test.js
deleted file mode 100644
index 52c86798717..00000000000
--- a/packages/grid/test/lit-polymer.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../all-imports.js';
-import './lit.common.js';
diff --git a/packages/grid/test/lit-renderer-directives-lit.test.js b/packages/grid/test/lit-renderer-directives-lit.test.js
deleted file mode 100644
index 9bb274f7dff..00000000000
--- a/packages/grid/test/lit-renderer-directives-lit.test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import '../theme/lumo/lit-all-imports.js';
-import '../src/lit-all-imports.js';
-import './lit-renderer-directives.common.js';
diff --git a/packages/grid/test/lit-renderer-directives-polymer.test.js b/packages/grid/test/lit-renderer-directives-polymer.test.js
deleted file mode 100644
index acfd540689d..00000000000
--- a/packages/grid/test/lit-renderer-directives-polymer.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../vaadin-grid.js';
-import './lit-renderer-directives.common.js';
diff --git a/packages/grid/test/lit-renderer-directives.common.js b/packages/grid/test/lit-renderer-directives.test.js
similarity index 99%
rename from packages/grid/test/lit-renderer-directives.common.js
rename to packages/grid/test/lit-renderer-directives.test.js
index 96a904824c2..027aa4f40dd 100644
--- a/packages/grid/test/lit-renderer-directives.common.js
+++ b/packages/grid/test/lit-renderer-directives.test.js
@@ -1,6 +1,7 @@
import { expect } from '@vaadin/chai-plugins';
import { fixtureSync, nextFrame } from '@vaadin/testing-helpers';
import sinon from 'sinon';
+import '../vaadin-grid.js';
import { html, render } from 'lit';
import { columnBodyRenderer, columnFooterRenderer, columnHeaderRenderer, gridRowDetailsRenderer } from '../lit.js';
import { getCellContent, getContainerCell } from './helpers.js';
diff --git a/packages/grid/test/lit-renderers-lit.test.js b/packages/grid/test/lit-renderers-lit.test.js
deleted file mode 100644
index 6ababa0ea43..00000000000
--- a/packages/grid/test/lit-renderers-lit.test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import '../theme/lumo/lit-all-imports.js';
-import '../src/lit-all-imports.js';
-import './lit-renderers.common.js';
diff --git a/packages/grid/test/lit-renderers-polymer.test.js b/packages/grid/test/lit-renderers-polymer.test.js
deleted file mode 100644
index 6fa5f7d1690..00000000000
--- a/packages/grid/test/lit-renderers-polymer.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../all-imports.js';
-import './lit-renderers.common.js';
diff --git a/packages/grid/test/lit-renderers.common.js b/packages/grid/test/lit-renderers.test.js
similarity index 99%
rename from packages/grid/test/lit-renderers.common.js
rename to packages/grid/test/lit-renderers.test.js
index d278bbffd04..eaf6546cb99 100644
--- a/packages/grid/test/lit-renderers.common.js
+++ b/packages/grid/test/lit-renderers.test.js
@@ -1,5 +1,6 @@
import { expect } from '@vaadin/chai-plugins';
import { fixtureSync } from '@vaadin/testing-helpers';
+import '../all-imports.js';
import { html, render } from 'lit';
import { flushGrid } from './helpers.js';
diff --git a/packages/grid/test/lit.common.js b/packages/grid/test/lit.test.js
similarity index 99%
rename from packages/grid/test/lit.common.js
rename to packages/grid/test/lit.test.js
index 7abd524cbcf..ad9bf6dd33f 100644
--- a/packages/grid/test/lit.common.js
+++ b/packages/grid/test/lit.test.js
@@ -1,5 +1,6 @@
import { expect } from '@vaadin/chai-plugins';
import { aTimeout, fixtureSync, nextFrame } from '@vaadin/testing-helpers';
+import '../all-imports.js';
import { html, render } from 'lit';
import { flush } from '@vaadin/component-base/src/debounce.js';
import { getBodyCellContent, getPhysicalItems } from './helpers.js';
diff --git a/packages/grid/test/min-height-lit.test.js b/packages/grid/test/min-height-lit.test.js
deleted file mode 100644
index 6e917cea80c..00000000000
--- a/packages/grid/test/min-height-lit.test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import '../theme/lumo/lit-all-imports.js';
-import '../src/lit-all-imports.js';
-import './min-height.common.js';
diff --git a/packages/grid/test/min-height-polymer.test.js b/packages/grid/test/min-height-polymer.test.js
deleted file mode 100644
index a40277f3724..00000000000
--- a/packages/grid/test/min-height-polymer.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../vaadin-grid.js';
-import './min-height.common.js';
diff --git a/packages/grid/test/min-height.common.js b/packages/grid/test/min-height.test.js
similarity index 99%
rename from packages/grid/test/min-height.common.js
rename to packages/grid/test/min-height.test.js
index 55ef8ea167b..49b19b4a2db 100644
--- a/packages/grid/test/min-height.common.js
+++ b/packages/grid/test/min-height.test.js
@@ -1,5 +1,6 @@
import { expect } from '@vaadin/chai-plugins';
import { fixtureSync, nextResize } from '@vaadin/testing-helpers';
+import '../vaadin-grid.js';
import { flushGrid, infiniteDataProvider } from './helpers.js';
describe('min-height', () => {
diff --git a/packages/grid/test/missing-imports-lit.test.js b/packages/grid/test/missing-imports-lit.test.js
deleted file mode 100644
index c4ea9e85d25..00000000000
--- a/packages/grid/test/missing-imports-lit.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../src/vaadin-lit-grid.js';
-import './missing-imports.common.js';
diff --git a/packages/grid/test/missing-imports-polymer.test.js b/packages/grid/test/missing-imports-polymer.test.js
deleted file mode 100644
index 611b72ef664..00000000000
--- a/packages/grid/test/missing-imports-polymer.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../src/vaadin-grid.js';
-import './missing-imports.common.js';
diff --git a/packages/grid/test/missing-imports.common.js b/packages/grid/test/missing-imports.test.js
similarity index 98%
rename from packages/grid/test/missing-imports.common.js
rename to packages/grid/test/missing-imports.test.js
index 796b2c35511..2b5372c73ca 100644
--- a/packages/grid/test/missing-imports.common.js
+++ b/packages/grid/test/missing-imports.test.js
@@ -1,6 +1,7 @@
import { expect } from '@vaadin/chai-plugins';
import { fixtureSync } from '@vaadin/testing-helpers';
import sinon from 'sinon';
+import '../src/vaadin-grid.js';
import { flushGrid, infiniteDataProvider } from './helpers.js';
describe('missing imports', () => {
diff --git a/packages/grid/test/physical-count-lit.test.js b/packages/grid/test/physical-count-lit.test.js
deleted file mode 100644
index d96b6c13511..00000000000
--- a/packages/grid/test/physical-count-lit.test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import '../theme/lumo/lit-all-imports.js';
-import '../src/lit-all-imports.js';
-import './physical-count.common.js';
diff --git a/packages/grid/test/physical-count-polymer.test.js b/packages/grid/test/physical-count-polymer.test.js
deleted file mode 100644
index ae69baedb8f..00000000000
--- a/packages/grid/test/physical-count-polymer.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../vaadin-grid.js';
-import './physical-count.common.js';
diff --git a/packages/grid/test/physical-count.common.js b/packages/grid/test/physical-count.test.js
similarity index 98%
rename from packages/grid/test/physical-count.common.js
rename to packages/grid/test/physical-count.test.js
index 39b156583f5..dc68acdf66c 100644
--- a/packages/grid/test/physical-count.common.js
+++ b/packages/grid/test/physical-count.test.js
@@ -1,5 +1,6 @@
import { expect } from '@vaadin/chai-plugins';
import { fixtureSync } from '@vaadin/testing-helpers';
+import '../vaadin-grid.js';
import { css } from 'lit';
import {
flushGrid,
diff --git a/packages/grid/test/renderers-lit.test.js b/packages/grid/test/renderers-lit.test.js
deleted file mode 100644
index aa5bf7f5e70..00000000000
--- a/packages/grid/test/renderers-lit.test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import '../theme/lumo/lit-all-imports.js';
-import '../src/lit-all-imports.js';
-import './renderers.common.js';
diff --git a/packages/grid/test/renderers-polymer.test.js b/packages/grid/test/renderers-polymer.test.js
deleted file mode 100644
index 22913705869..00000000000
--- a/packages/grid/test/renderers-polymer.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../vaadin-grid.js';
-import './renderers.common.js';
diff --git a/packages/grid/test/renderers.common.js b/packages/grid/test/renderers.test.js
similarity index 99%
rename from packages/grid/test/renderers.common.js
rename to packages/grid/test/renderers.test.js
index d322d7503e3..5704dfab4ed 100644
--- a/packages/grid/test/renderers.common.js
+++ b/packages/grid/test/renderers.test.js
@@ -1,6 +1,7 @@
import { expect } from '@vaadin/chai-plugins';
import { fixtureSync, isIOS, keyDownOn, nextFrame } from '@vaadin/testing-helpers';
import sinon from 'sinon';
+import '../vaadin-grid.js';
import { flushGrid, getBodyCellContent, getCell, getContainerCell } from './helpers.js';
function getHeaderCell(grid, index = 0) {
diff --git a/packages/grid/test/resizing-lit.test.js b/packages/grid/test/resizing-lit.test.js
deleted file mode 100644
index 129015ef50d..00000000000
--- a/packages/grid/test/resizing-lit.test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import '../theme/lumo/lit-all-imports.js';
-import '../src/lit-all-imports.js';
-import './resizing.common.js';
diff --git a/packages/grid/test/resizing-material-lit.test.js b/packages/grid/test/resizing-material-lit.test.js
deleted file mode 100644
index b29b495d28d..00000000000
--- a/packages/grid/test/resizing-material-lit.test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import '../theme/material/vaadin-grid-styles.js';
-import '../src/lit-all-imports.js';
-import './resizing-material.common.js';
diff --git a/packages/grid/test/resizing-material-polymer.test.js b/packages/grid/test/resizing-material-polymer.test.js
deleted file mode 100644
index 86459681987..00000000000
--- a/packages/grid/test/resizing-material-polymer.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../theme/material/vaadin-grid.js';
-import './resizing-material.common.js';
diff --git a/packages/grid/test/resizing-material.common.js b/packages/grid/test/resizing-material.test.js
similarity index 94%
rename from packages/grid/test/resizing-material.common.js
rename to packages/grid/test/resizing-material.test.js
index c8bfba930d7..83eefc0f3d1 100644
--- a/packages/grid/test/resizing-material.common.js
+++ b/packages/grid/test/resizing-material.test.js
@@ -1,5 +1,6 @@
import { expect } from '@vaadin/chai-plugins';
import { fixtureSync } from '@vaadin/testing-helpers';
+import '../theme/material/vaadin-grid.js';
import { flushGrid, infiniteDataProvider } from './helpers.js';
describe('resizing material grid', () => {
diff --git a/packages/grid/test/resizing-polymer.test.js b/packages/grid/test/resizing-polymer.test.js
deleted file mode 100644
index 6aca71c384a..00000000000
--- a/packages/grid/test/resizing-polymer.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../all-imports.js';
-import './resizing.common.js';
diff --git a/packages/grid/test/resizing.common.js b/packages/grid/test/resizing.test.js
similarity index 99%
rename from packages/grid/test/resizing.common.js
rename to packages/grid/test/resizing.test.js
index 6afd687a703..b519789ac48 100644
--- a/packages/grid/test/resizing.common.js
+++ b/packages/grid/test/resizing.test.js
@@ -1,6 +1,7 @@
import { expect } from '@vaadin/chai-plugins';
import { aTimeout, fixtureSync, nextFrame, nextResize, oneEvent } from '@vaadin/testing-helpers';
import sinon from 'sinon';
+import '../all-imports.js';
import { html, PolymerElement } from '@polymer/polymer/polymer-element.js';
import {
flushGrid,
diff --git a/packages/grid/test/row-details-lit.test.js b/packages/grid/test/row-details-lit.test.js
deleted file mode 100644
index 461f4955e93..00000000000
--- a/packages/grid/test/row-details-lit.test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import '../theme/lumo/lit-all-imports.js';
-import '../src/lit-all-imports.js';
-import './row-details.common.js';
diff --git a/packages/grid/test/row-details-polymer.test.js b/packages/grid/test/row-details-polymer.test.js
deleted file mode 100644
index 43ec461ce5d..00000000000
--- a/packages/grid/test/row-details-polymer.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../vaadin-grid.js';
-import './row-details.common.js';
diff --git a/packages/grid/test/row-details.common.js b/packages/grid/test/row-details.test.js
similarity index 99%
rename from packages/grid/test/row-details.common.js
rename to packages/grid/test/row-details.test.js
index 4b0f7f2c9aa..4d6f174d1cd 100644
--- a/packages/grid/test/row-details.common.js
+++ b/packages/grid/test/row-details.test.js
@@ -1,6 +1,7 @@
import { expect } from '@vaadin/chai-plugins';
import { aTimeout, click, fixtureSync, nextFrame } from '@vaadin/testing-helpers';
import sinon from 'sinon';
+import '../vaadin-grid.js';
import { html, PolymerElement } from '@polymer/polymer/polymer-element.js';
import {
buildDataSet,
diff --git a/packages/grid/test/row-height-lit.test.js b/packages/grid/test/row-height-lit.test.js
deleted file mode 100644
index 5164ae6dcc0..00000000000
--- a/packages/grid/test/row-height-lit.test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import '../theme/lumo/lit-all-imports.js';
-import '../src/lit-all-imports.js';
-import './row-height.common.js';
diff --git a/packages/grid/test/row-height-polymer.test.js b/packages/grid/test/row-height-polymer.test.js
deleted file mode 100644
index b138a24d4e9..00000000000
--- a/packages/grid/test/row-height-polymer.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../vaadin-grid.js';
-import './row-height.common.js';
diff --git a/packages/grid/test/row-height.common.js b/packages/grid/test/row-height.test.js
similarity index 99%
rename from packages/grid/test/row-height.common.js
rename to packages/grid/test/row-height.test.js
index a059dba0fba..879f9ac605b 100644
--- a/packages/grid/test/row-height.common.js
+++ b/packages/grid/test/row-height.test.js
@@ -1,5 +1,6 @@
import { expect } from '@vaadin/chai-plugins';
import { aTimeout, fixtureSync, nextFrame, oneEvent } from '@vaadin/testing-helpers';
+import '../vaadin-grid.js';
import { flushGrid, getRowCells, getRows, infiniteDataProvider, scrollToEnd } from './helpers.js';
const fixtures = {
diff --git a/packages/grid/test/scroll-into-view-lit.test.js b/packages/grid/test/scroll-into-view-lit.test.js
deleted file mode 100644
index 3d107320356..00000000000
--- a/packages/grid/test/scroll-into-view-lit.test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import '../theme/lumo/lit-all-imports.js';
-import '../src/lit-all-imports.js';
-import './scroll-into-view.common.js';
diff --git a/packages/grid/test/scroll-into-view-polymer.test.js b/packages/grid/test/scroll-into-view-polymer.test.js
deleted file mode 100644
index 7866627fed4..00000000000
--- a/packages/grid/test/scroll-into-view-polymer.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../vaadin-grid.js';
-import './scroll-into-view.common.js';
diff --git a/packages/grid/test/scroll-into-view.common.js b/packages/grid/test/scroll-into-view.test.js
similarity index 99%
rename from packages/grid/test/scroll-into-view.common.js
rename to packages/grid/test/scroll-into-view.test.js
index 90288212673..c7ae26e7881 100644
--- a/packages/grid/test/scroll-into-view.common.js
+++ b/packages/grid/test/scroll-into-view.test.js
@@ -1,6 +1,7 @@
import { expect } from '@vaadin/chai-plugins';
import { sendKeys, sendMouse } from '@vaadin/test-runner-commands';
import { fixtureSync, nextFrame } from '@vaadin/testing-helpers';
+import '../vaadin-grid.js';
import { flushGrid, getContainerCell, getLastVisibleItem, getPhysicalItems } from './helpers.js';
describe('scroll into view', () => {
diff --git a/packages/grid/test/scroll-restoration-lit.test.js b/packages/grid/test/scroll-restoration-lit.test.js
deleted file mode 100644
index 5e9f1048a97..00000000000
--- a/packages/grid/test/scroll-restoration-lit.test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import '../theme/lumo/lit-all-imports.js';
-import '../src/lit-all-imports.js';
-import './scroll-restoration.common.js';
diff --git a/packages/grid/test/scroll-restoration-polymer.test.js b/packages/grid/test/scroll-restoration-polymer.test.js
deleted file mode 100644
index 02e06e11f70..00000000000
--- a/packages/grid/test/scroll-restoration-polymer.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../vaadin-grid.js';
-import './scroll-restoration.common.js';
diff --git a/packages/grid/test/scroll-restoration.common.js b/packages/grid/test/scroll-restoration.test.js
similarity index 98%
rename from packages/grid/test/scroll-restoration.common.js
rename to packages/grid/test/scroll-restoration.test.js
index 3d25520acca..db91163592a 100644
--- a/packages/grid/test/scroll-restoration.common.js
+++ b/packages/grid/test/scroll-restoration.test.js
@@ -1,5 +1,6 @@
import { expect } from '@vaadin/chai-plugins';
import { aTimeout, fixtureSync, isFirefox } from '@vaadin/testing-helpers';
+import '../vaadin-grid.js';
import { fire, flushGrid, infiniteDataProvider } from './helpers.js';
if (isFirefox) {
diff --git a/packages/grid/test/scroll-to-index-lit.test.js b/packages/grid/test/scroll-to-index-lit.test.js
deleted file mode 100644
index 10c6b8dd040..00000000000
--- a/packages/grid/test/scroll-to-index-lit.test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import '../theme/lumo/lit-all-imports.js';
-import '../src/lit-all-imports.js';
-import './scroll-to-index.common.js';
diff --git a/packages/grid/test/scroll-to-index-polymer.test.js b/packages/grid/test/scroll-to-index-polymer.test.js
deleted file mode 100644
index 5ed33de1b9d..00000000000
--- a/packages/grid/test/scroll-to-index-polymer.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../all-imports.js';
-import './scroll-to-index.common.js';
diff --git a/packages/grid/test/scroll-to-index.common.js b/packages/grid/test/scroll-to-index.test.js
similarity index 99%
rename from packages/grid/test/scroll-to-index.common.js
rename to packages/grid/test/scroll-to-index.test.js
index cc34ff9b870..c488030b9a8 100644
--- a/packages/grid/test/scroll-to-index.common.js
+++ b/packages/grid/test/scroll-to-index.test.js
@@ -1,5 +1,6 @@
import { expect } from '@vaadin/chai-plugins';
import { fixtureSync, listenOnce, nextFrame, oneEvent } from '@vaadin/testing-helpers';
+import '../all-imports.js';
import {
flushGrid,
getFirstVisibleItem,
diff --git a/packages/grid/test/scrolling-mode-lit.test.js b/packages/grid/test/scrolling-mode-lit.test.js
deleted file mode 100644
index 90a47065054..00000000000
--- a/packages/grid/test/scrolling-mode-lit.test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import '../theme/lumo/lit-all-imports.js';
-import '../src/lit-all-imports.js';
-import './scrolling-mode.common.js';
diff --git a/packages/grid/test/scrolling-mode-polymer.test.js b/packages/grid/test/scrolling-mode-polymer.test.js
deleted file mode 100644
index d798f69acba..00000000000
--- a/packages/grid/test/scrolling-mode-polymer.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../vaadin-grid.js';
-import './scrolling-mode.common.js';
diff --git a/packages/grid/test/scrolling-mode.common.js b/packages/grid/test/scrolling-mode.test.js
similarity index 99%
rename from packages/grid/test/scrolling-mode.common.js
rename to packages/grid/test/scrolling-mode.test.js
index 3cfe9d4c75e..42158718270 100644
--- a/packages/grid/test/scrolling-mode.common.js
+++ b/packages/grid/test/scrolling-mode.test.js
@@ -1,5 +1,6 @@
import { expect } from '@vaadin/chai-plugins';
import { fixtureSync, listenOnce, nextFrame, nextRender, nextResize } from '@vaadin/testing-helpers';
+import '../vaadin-grid.js';
import { flushGrid, infiniteDataProvider, scrollToEnd } from './helpers.js';
describe('scrolling mode', () => {
diff --git a/packages/grid/test/selectable-provider-lit.test.js b/packages/grid/test/selectable-provider-lit.test.js
deleted file mode 100644
index 46ad9a70290..00000000000
--- a/packages/grid/test/selectable-provider-lit.test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import '../theme/lumo/lit-all-imports.js';
-import '../src/lit-all-imports.js';
-import './selectable-provider.common.js';
diff --git a/packages/grid/test/selectable-provider-polymer.test.js b/packages/grid/test/selectable-provider-polymer.test.js
deleted file mode 100644
index 9ed89370082..00000000000
--- a/packages/grid/test/selectable-provider-polymer.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../all-imports.js';
-import './selectable-provider.common.js';
diff --git a/packages/grid/test/selectable-provider.common.js b/packages/grid/test/selectable-provider.test.js
similarity index 99%
rename from packages/grid/test/selectable-provider.common.js
rename to packages/grid/test/selectable-provider.test.js
index 9ac9a3dd8a5..0ce0bc20bce 100644
--- a/packages/grid/test/selectable-provider.common.js
+++ b/packages/grid/test/selectable-provider.test.js
@@ -2,6 +2,7 @@ import { expect } from '@vaadin/chai-plugins';
import { sendKeys } from '@vaadin/test-runner-commands';
import { fixtureSync, nextFrame } from '@vaadin/testing-helpers';
import sinon from 'sinon';
+import '../all-imports.js';
import {
fire,
flushGrid,
diff --git a/packages/grid/test/selection-column-lazy-import-lit.test.js b/packages/grid/test/selection-column-lazy-import-lit.test.js
deleted file mode 100644
index a024626bfdd..00000000000
--- a/packages/grid/test/selection-column-lazy-import-lit.test.js
+++ /dev/null
@@ -1,13 +0,0 @@
-import { fixtureSync } from '@vaadin/testing-helpers/dist/fixture.js';
-
-it('should not throw when grid with items imported lazily after selection column', async () => {
- fixtureSync(`
-
-
-
- `);
-
- // The order of imports matters in this test
- await import('../src/vaadin-lit-grid-selection-column.js');
- await import('../src/vaadin-lit-grid.js');
-});
diff --git a/packages/grid/test/selection-column-lazy-import-polymer.test.js b/packages/grid/test/selection-column-lazy-import.test.js
similarity index 100%
rename from packages/grid/test/selection-column-lazy-import-polymer.test.js
rename to packages/grid/test/selection-column-lazy-import.test.js
diff --git a/packages/grid/test/selection-lit.test.js b/packages/grid/test/selection-lit.test.js
deleted file mode 100644
index ec44b61514f..00000000000
--- a/packages/grid/test/selection-lit.test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import '../theme/lumo/lit-all-imports.js';
-import '../src/lit-all-imports.js';
-import './selection.common.js';
diff --git a/packages/grid/test/selection-polymer.test.js b/packages/grid/test/selection-polymer.test.js
deleted file mode 100644
index e68306691ec..00000000000
--- a/packages/grid/test/selection-polymer.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../all-imports.js';
-import './selection.common.js';
diff --git a/packages/grid/test/selection.common.js b/packages/grid/test/selection.test.js
similarity index 99%
rename from packages/grid/test/selection.common.js
rename to packages/grid/test/selection.test.js
index 2f047acf706..6f4f35f0b27 100644
--- a/packages/grid/test/selection.common.js
+++ b/packages/grid/test/selection.test.js
@@ -2,6 +2,7 @@ import { expect } from '@vaadin/chai-plugins';
import { sendKeys } from '@vaadin/test-runner-commands';
import { click, fixtureSync, listenOnce, mousedown, nextFrame, nextRender } from '@vaadin/testing-helpers';
import sinon from 'sinon';
+import '../all-imports.js';
import {
fire,
flushGrid,
diff --git a/packages/grid/test/sorting-lit.test.js b/packages/grid/test/sorting-lit.test.js
deleted file mode 100644
index 92b1526e7b0..00000000000
--- a/packages/grid/test/sorting-lit.test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import '../theme/lumo/lit-all-imports.js';
-import '../src/lit-all-imports.js';
-import './sorting.common.js';
diff --git a/packages/grid/test/sorting-polymer.test.js b/packages/grid/test/sorting-polymer.test.js
deleted file mode 100644
index a20f93c4dea..00000000000
--- a/packages/grid/test/sorting-polymer.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../all-imports.js';
-import './sorting.common.js';
diff --git a/packages/grid/test/sorting.common.js b/packages/grid/test/sorting.test.js
similarity index 99%
rename from packages/grid/test/sorting.common.js
rename to packages/grid/test/sorting.test.js
index 7dc0b63636d..487151bce2a 100644
--- a/packages/grid/test/sorting.common.js
+++ b/packages/grid/test/sorting.test.js
@@ -1,6 +1,8 @@
import { expect } from '@vaadin/chai-plugins';
import { click, fixtureSync, keyUpOn, nextFrame } from '@vaadin/testing-helpers';
import sinon from 'sinon';
+import '../all-imports.js';
+import { Grid } from '../src/vaadin-grid.js';
import {
buildDataSet,
flushGrid,
@@ -11,8 +13,6 @@ import {
shiftClick,
} from './helpers.js';
-const Grid = customElements.get('vaadin-grid');
-
describe('sorting', () => {
describe('sorter', () => {
let sorter, title, button, orderIndicator;
diff --git a/packages/grid/test/styling-lit.test.js b/packages/grid/test/styling-lit.test.js
deleted file mode 100644
index 5a4a35536e0..00000000000
--- a/packages/grid/test/styling-lit.test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import '../theme/lumo/lit-all-imports.js';
-import '../src/lit-all-imports.js';
-import './styling.common.js';
diff --git a/packages/grid/test/styling-polymer.test.js b/packages/grid/test/styling-polymer.test.js
deleted file mode 100644
index 4e8e6736469..00000000000
--- a/packages/grid/test/styling-polymer.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../vaadin-grid.js';
-import './styling.common.js';
diff --git a/packages/grid/test/styling.common.js b/packages/grid/test/styling.test.js
similarity index 99%
rename from packages/grid/test/styling.common.js
rename to packages/grid/test/styling.test.js
index dc5906bd228..d75b164ac67 100644
--- a/packages/grid/test/styling.common.js
+++ b/packages/grid/test/styling.test.js
@@ -1,6 +1,7 @@
import { expect } from '@vaadin/chai-plugins';
import { fixtureSync, nextFrame, nextRender } from '@vaadin/testing-helpers';
import sinon from 'sinon';
+import '../vaadin-grid.js';
import { flushGrid, getContainerCell, getRows, infiniteDataProvider, scrollToEnd } from './helpers.js';
describe('styling', () => {
diff --git a/packages/grid/test/tree-toggle-lit.test.js b/packages/grid/test/tree-toggle-lit.test.js
deleted file mode 100644
index 8692b6c96c6..00000000000
--- a/packages/grid/test/tree-toggle-lit.test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import '../theme/lumo/lit-all-imports.js';
-import '../src/lit-all-imports.js';
-import './tree-toggle.common.js';
diff --git a/packages/grid/test/tree-toggle-polymer.test.js b/packages/grid/test/tree-toggle-polymer.test.js
deleted file mode 100644
index 2fccc2ad8ea..00000000000
--- a/packages/grid/test/tree-toggle-polymer.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '../all-imports.js';
-import './tree-toggle.common.js';
diff --git a/packages/grid/test/tree-toggle.common.js b/packages/grid/test/tree-toggle.test.js
similarity index 99%
rename from packages/grid/test/tree-toggle.common.js
rename to packages/grid/test/tree-toggle.test.js
index 813ee4b6cde..f7292125ff0 100644
--- a/packages/grid/test/tree-toggle.common.js
+++ b/packages/grid/test/tree-toggle.test.js
@@ -1,6 +1,7 @@
import { expect } from '@vaadin/chai-plugins';
import { click, fixtureSync, nextFrame } from '@vaadin/testing-helpers';
import sinon from 'sinon';
+import '../all-imports.js';
import { flushGrid, getBodyCellContent } from './helpers.js';
describe('tree toggle', () => {
diff --git a/scripts/generateLitTests.js b/scripts/generateLitTests.js
new file mode 100644
index 00000000000..4b4e0daed52
--- /dev/null
+++ b/scripts/generateLitTests.js
@@ -0,0 +1,22 @@
+const fs = require('fs');
+const glob = require('glob');
+
+const packages = fs.readdirSync('packages');
+
+packages
+ .filter((pkg) => {
+ return fs.existsSync(`packages/${pkg}/vaadin-lit-${pkg}.js`);
+ })
+ .flatMap((pkg) => {
+ return glob.sync(`packages/${pkg}/test/*.test.{js,ts}`);
+ })
+ .filter((testPath) => {
+ return !/(-polymer|-lit)(\.generated)?\.test/u.test(testPath);
+ })
+ .forEach((testPath) => {
+ const generatedLitTestPath = testPath.replace('.test.', '-lit.generated.test.');
+
+ if (!fs.existsSync(generatedLitTestPath)) {
+ fs.symlinkSync(fs.realpathSync(testPath), generatedLitTestPath);
+ }
+ });
diff --git a/web-dev-server.config.js b/web-dev-server.config.js
index ebbf7896537..96794378fb6 100644
--- a/web-dev-server.config.js
+++ b/web-dev-server.config.js
@@ -1,6 +1,30 @@
/* eslint-env node */
const fs = require('fs');
const { esbuildPlugin } = require('@web/dev-server-esbuild');
+const path = require('path');
+
+/** @return {import('@web/test-runner').TestRunnerPlugin} */
+function generatedLitTestsPlugin() {
+ return {
+ name: 'generated-lit-tests',
+ transformImport({ source, context }) {
+ if (context.url.includes('-lit.generated.test.')) {
+ const dependencyPath = path.resolve(path.dirname(context.url), source);
+
+ const litDependencyPath = dependencyPath
+ // /button/vaadin-button.js -> /button/vaadin-lit-button.js
+ .replace(/\/vaadin-(?!lit)([^/]+)/u, '/vaadin-lit-$1')
+ // /grid/all-imports.js -> /grid/lit-all-imports.js
+ .replace(/\/all-imports/u, '/lit-all-imports');
+
+ if (litDependencyPath !== dependencyPath && fs.existsSync(`.${litDependencyPath}`)) {
+ return litDependencyPath;
+ }
+ }
+ return source;
+ },
+ };
+}
const preventFouc = `