diff --git a/.gitignore b/.gitignore
index 06f9ddacd0..48d1ac96cf 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,6 +10,9 @@ packages/*/test/visual/screenshots/failed
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 a8b768ab27..21cce8430a 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.8",
diff --git a/packages/button/test/button-lit.test.ts b/packages/button/test/button-lit.test.ts
deleted file mode 100644
index 78e9b5d98b..0000000000
--- 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 1f22c1d522..0000000000
--- 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 59cfc3b0f3..dd72e60858 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 { resetMouse, sendKeys, sendMouse } from '@vaadin/test-runner-commands';
import { fire, fixtureSync, middleOfNode, 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 6d07f9aa14..0000000000
--- 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 d0132c10b4..0000000000
--- 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 e2578656ca..cf6a1bf83c 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 bc92c6d304..0000000000
--- 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 59af804256..0000000000
--- 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 9f1606b1a6..b0d82b11f7 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 3c2dd168d9..0000000000
--- 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 dd340b6c36..0000000000
--- 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 9372d3b2ef..0056558923 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 b0a896af7e..0000000000
--- 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 49f817843d..0000000000
--- 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 2f78782f28..40614945e0 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 66f9784951..0000000000
--- 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 71032c498e..0000000000
--- 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 ad7a40eda4..41c71b4528 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 5e9fc601bd..0000000000
--- 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 76ec52bf5a..0000000000
--- 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 56956acd71..4b7d3377a0 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 7a3ec09ea9..0000000000
--- 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 481374932d..0000000000
--- 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 cde7252d24..0000000000
--- 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 3dad79f263..0000000000
--- 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 7b125bfb93..69f80af67a 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 c5673d161c..0000000000
--- 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 f7bfd7b2f3..0000000000
--- 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 2d7579191d..558101eb81 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 deeea2a180..0000000000
--- 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 6824c7d746..0000000000
--- 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 0aee5e22ea..538287790e 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 0c4aa154da..df3a96963e 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 28b5cbc55b..0000000000
--- 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 691bb423d3..0000000000
--- 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 2241c56304..2d6eaaa833 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 ef3f71a335..0000000000
--- 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 8d9416d8e9..0000000000
--- 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 87459beca4..5c8c09d2d9 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 80ad4b33e7..0000000000
--- 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 e5f96be090..0000000000
--- 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 0739c11523..78e515516f 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 66eed4163f..0000000000
--- 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 b78798e6c2..0000000000
--- 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 9d09d95000..3ecd344665 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 e23fad4bb6..0000000000
--- 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 519b045e39..0000000000
--- 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 745c09ed26..3a0f5e4701 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 2619312022..0000000000
--- 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 23eb1db785..0000000000
--- 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 41fc0f3795..7a6567f5a4 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 86634c8ff9..0000000000
--- 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 b064aa1bb5..0000000000
--- 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 67dda571ec..dddbe934f0 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 e197ec8440..0000000000
--- 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 bd1a4a8849..0000000000
--- 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 1b7b555f22..25727bb010 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 676d47839f..0000000000
--- 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 34fc19474d..0000000000
--- 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 274a790e51..48cdc3e8fd 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 2f394b687d..0000000000
--- 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 00557852c1..0000000000
--- 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 156b85ff29..9f1aae4850 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 1cd88cf94c..0000000000
--- 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 e230c8f862..0000000000
--- 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 f96a808ce9..7ed192f5ac 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 08cf6d39eb..0000000000
--- 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 5ac05ed2d8..0000000000
--- 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 41f4f4de6a..3d290ad5d8 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 b2f44f6b90..0000000000
--- 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 83be3d32fd..0000000000
--- 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 ec575664ef..2e0f57fc22 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 51e6d0649a..0000000000
--- 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 f91b700531..0000000000
--- 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 b7db4c1ced..0000000000
--- 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 7d658df946..0000000000
--- 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 9610cc7992..3abc915c99 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 83ea2bf7c6..f7be970a96 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 9a5230ff9d..0000000000
--- 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 10e12c0a4a..0000000000
--- 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 6c868aeec1..1162b4f262 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 a8eb05f5c4..0000000000
--- 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 52c8679871..0000000000
--- 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 9bb274f7df..0000000000
--- 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 acfd540689..0000000000
--- 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 96a904824c..027aa4f40d 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 6ababa0ea4..0000000000
--- 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 6fa5f7d169..0000000000
--- 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 d278bbffd0..eaf6546cb9 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 7abd524cbc..ad9bf6dd33 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 6e917cea80..0000000000
--- 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 a40277f372..0000000000
--- 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 55ef8ea167..49b19b4a2d 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 c4ea9e85d2..0000000000
--- 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 611b72ef66..0000000000
--- 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 796b2c3551..2b5372c73c 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 d96b6c1351..0000000000
--- 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 ae69baedb8..0000000000
--- 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 39b156583f..dc68acdf66 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 aa5bf7f5e7..0000000000
--- 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 2291370586..0000000000
--- 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 d322d7503e..5704dfab4e 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 129015ef50..0000000000
--- 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 b29b495d28..0000000000
--- 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 8645968198..0000000000
--- 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 c8bfba930d..83eefc0f3d 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 6aca71c384..0000000000
--- 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 6afd687a70..b519789ac4 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 461f4955e9..0000000000
--- 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 43ec461ce5..0000000000
--- 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 4b0f7f2c9a..4d6f174d1c 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 5164ae6dcc..0000000000
--- 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 b138a24d4e..0000000000
--- 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 a059dba0fb..879f9ac605 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 3d10732035..0000000000
--- 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 7866627fed..0000000000
--- 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 9028821267..c7ae26e788 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 5e9f1048a9..0000000000
--- 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 02e06e11f7..0000000000
--- 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 3d25520acc..db91163592 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 10c6b8dd04..0000000000
--- 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 5ed33de1b9..0000000000
--- 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 cc34ff9b87..c488030b9a 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 90a4706505..0000000000
--- 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 d798f69acb..0000000000
--- 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 3cfe9d4c75..4215871827 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 46ad9a7029..0000000000
--- 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 9ed8937008..0000000000
--- 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 9ac9a3dd8a..0ce0bc20bc 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 a024626bfd..0000000000
--- 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 ec44b61514..0000000000
--- 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 e68306691e..0000000000
--- 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 31d3a21832..1031c2f930 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 { resetMouse, sendKeys, sendMouse } 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 92b1526e7b..0000000000
--- 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 a20f93c4de..0000000000
--- 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 7dc0b63636..487151bce2 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 5a4a35536e..0000000000
--- 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 4e8e673646..0000000000
--- 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 dc5906bd22..d75b164ac6 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 8692b6c96c..0000000000
--- 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 2fccc2ad8e..0000000000
--- 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 813ee4b6cd..f7292125ff 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 0000000000..4b4e0daed5
--- /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 ebbf789653..96794378fb 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 = `