Skip to content

Commit 3e68af9

Browse files
committed
CI setup
1 parent fb388a5 commit 3e68af9

File tree

7 files changed

+47
-24
lines changed

7 files changed

+47
-24
lines changed

Diff for: .github/workflows/ci.yml

+6-1
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,13 @@ on:
88

99
jobs:
1010
build:
11-
name: Browser tests
11+
name: "Browser tests (ElementInternals: ${{ matrix.elementInternals }})"
1212
runs-on: ubuntu-latest
13+
strategy:
14+
matrix:
15+
elementInternals: [false, true]
16+
env:
17+
EDITOR_ELEMENT_INTERNALS: "${{ matrix.elementInternals }}"
1318
steps:
1419
- uses: actions/checkout@v3
1520
- uses: actions/setup-node@v3

Diff for: karma.conf.js

+5-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ const config = {
33
frameworks: [ "qunit" ],
44
files: [
55
{ pattern: "dist/test.js", watched: false },
6-
{ pattern: "src/test_helpers/fixtures/*.png", watched: false, included: false, served: true }
6+
{ pattern: "src/test/test_helpers/fixtures/*.png", watched: false, included: false, served: true }
77
],
88
proxies: {
99
"/test_helpers/fixtures/": "/base/src/test_helpers/fixtures/"
@@ -25,7 +25,6 @@ const config = {
2525
browserDisconnectTimeout: 240000,
2626
browserDisconnectTolerance: 3,
2727
browserNoActivityTimeout: 300000,
28-
editorElementInternals: process.env.EDITOR_ELEMENT_INTERNALS === "true",
2928
}
3029

3130
/* eslint camelcase: "off", */
@@ -102,6 +101,10 @@ if (process.env.SAUCE_ACCESS_KEY) {
102101
}
103102
}
104103

104+
if (process.env.EDITOR_ELEMENT_INTERNALS === "true") {
105+
config.files.push({ pattern: "src/test/test_helpers/fixtures/editor_config_element_internals.js", watched: false, included: true })
106+
}
107+
105108
function buildId() {
106109
const { GITHUB_WORKFLOW, GITHUB_RUN_NUMBER, GITHUB_RUN_ID } = process.env
107110
return GITHUB_WORKFLOW && GITHUB_RUN_NUMBER && GITHUB_RUN_ID

Diff for: src/test/system/custom_element_test.js

+21-10
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import * as config from "trix/config"
12
import { rangesAreEqual } from "trix/core/helpers"
23

34
import {
@@ -13,6 +14,7 @@ import {
1314
test,
1415
testGroup,
1516
testIf,
17+
testUnless,
1618
triggerEvent,
1719
typeCharacters,
1820
typeInToolbarDialog,
@@ -499,26 +501,35 @@ testGroup("HTML sanitization", { template: "editor_html" }, () => {
499501
})
500502

501503
testGroup("<label> support", { template: "editor_with_labels" }, () => {
502-
test("associates all label elements", () => {
504+
testUnless(config.editor.elementInternals, "associates all label elements", () => {
503505
const labels = [ document.getElementById("label-1"), document.getElementById("label-3") ]
504-
assert.deepEqual(getEditorElement().labels, labels)
506+
assert.deepEqual(document.getElementById("editor-1").labels, labels)
505507
})
506508

507-
test("focuses when <label> clicked", () => {
509+
testUnless(config.editor.elementInternals, "focuses when <label> clicked", () => {
508510
document.getElementById("label-1").click()
509-
assert.equal(getEditorElement(), document.activeElement)
511+
assert.equal(document.getElementById("editor-1"), document.activeElement)
510512
})
511513

512-
test("focuses when <label> descendant clicked", () => {
514+
testUnless(config.editor.elementInternals, "focuses when <label> descendant clicked", () => {
513515
document.getElementById("label-1").querySelector("span").click()
514-
assert.equal(getEditorElement(), document.activeElement)
516+
assert.equal(document.getElementById("editor-1"), document.activeElement)
515517
})
516518

517-
test("does not focus when <label> controls another element", () => {
519+
testUnless(config.editor.elementInternals, "does not focus when <label> controls another element", () => {
518520
const label = document.getElementById("label-2")
519-
assert.notEqual(getEditorElement(), label.control)
521+
assert.notEqual(document.getElementById("editor-1"), label.control)
520522
label.click()
521-
assert.notEqual(getEditorElement(), document.activeElement)
523+
assert.notEqual(document.getElementById("editor-1"), document.activeElement)
524+
})
525+
526+
testIf(config.editor.elementInternals, "associates all label elements through a <form>", () => {
527+
const element = document.getElementById("editor-2")
528+
const labels = Array.from(element.labels)
529+
const controls = labels.map((label) => label.control)
530+
531+
assert.deepEqual(labels, [ document.getElementById("label-4"), document.getElementById("label-5") ])
532+
assert.deepEqual(controls, [ element, element ])
522533
})
523534
})
524535

@@ -529,7 +540,7 @@ testGroup("form property references its <form>", { template: "editors_with_forms
529540
assert.equal(editor.form, form)
530541
})
531542

532-
test("transitively accesses its related <input> element's <form>", () => {
543+
test("accesses its related <form>", () => {
533544
const form = document.getElementById("input-form")
534545
const editor = document.getElementById("editor-with-input-form")
535546
assert.equal(editor.form, form)

Diff for: src/test/test_helper.js

-8
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,3 @@ document.head.insertAdjacentHTML(
3131
#qunit { position: relative !important; }
3232
</style>`
3333
)
34-
35-
if (window.__karma__.config.editorElementInternals) {
36-
document.head.insertAdjacentHTML(
37-
"beforeend",
38-
`<meta name="trix-config-editor-element-internals" content="true">
39-
`
40-
)
41-
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Trix.config.editor.elementInternals = true

Diff for: src/test/test_helpers/fixtures/editor_with_labels.js

+10-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,14 @@
11
export default () =>
2-
`<label id="label-1" for="editor"><span>Label 1</span></label>
2+
`<label id="label-1" for="editor-1"><span>Label 1</span></label>
33
<label id="label-2">
44
Label 2
5-
<trix-editor id="editor"></trix-editor>
5+
<trix-editor id="editor-1"></trix-editor>
66
</label>
7-
<label id="label-3" for="editor">Label 3</label>`
7+
<label id="label-3" for="editor-1">Label 3</label>
8+
<form id="form-1">
9+
<label id="label-4">
10+
Label 4
11+
<trix-editor id="editor-2"></trix-editor>
12+
</label>
13+
<label for="editor-2">Label 5</label>
14+
</form>`

Diff for: src/test/test_helpers/test_helpers.js

+4
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,10 @@ export const testIf = function (condition, ...args) {
5656
}
5757
}
5858

59+
export const testUnless = function(condition, ...args) {
60+
testIf(!condition, ...args)
61+
}
62+
5963
export const { skip, test } = QUnit
6064

6165
const waitForTrixInit = async () => {

0 commit comments

Comments
 (0)