Skip to content

Commit cd8338a

Browse files
committed
Add new test config for @converse/headless
- Set up a test runner for the headless build - Move isEqualNode to headless utils - We now run the headless tests with the headless build and test runner
1 parent 5e1bf7d commit cd8338a

File tree

94 files changed

+1259
-1114
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

94 files changed

+1259
-1114
lines changed

CHANGES.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
# Changelog
22

3-
## 11.0.2 (Unreleased)
3+
## 12.0.0 (Unreleased)
44

55
- #3700: Fix exception that occurs when optional cp attribute is missing
66
- #3730 QR Code is not valid
77
- Add approval banner in chats with requesting contacts or unsaved contacts
88
- Some fixes regarding manually resized chats in `overlayed` view mode.
99
- Replace webpack with [rspack](https://rspack.rs)
1010
- Registration: Use https://providers.xmpp.net instead of https://compliance.conversations.im
11+
- Create ESM builds of converse.js and converse-headless.js
12+
- Set up a test runner for @converse/headless so that the headless tests use the headless build
1113

1214
## 11.0.1 (2025-06-09)
1315

Makefile

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -242,10 +242,15 @@ eslint: node_modules
242242
npm run lint
243243

244244
.PHONY: check
245-
check: eslint | dist/converse.js dist/converse.css
245+
check: eslint | src/headless/dist/converse-headless.js dist/converse.js dist/converse.css
246246
npm run types
247247
make check-git-clean
248-
npm run test -- $(ARGS)
248+
cd src/headless && npm run test -- --single-run
249+
npm run test -- --single-run
250+
251+
.PHONY: test-headless
252+
test-headless:
253+
cd src/headless && npm run test -- $(ARGS)
249254

250255
.PHONY: test
251256
test:

karma.conf.js

Lines changed: 23 additions & 121 deletions
Original file line numberDiff line numberDiff line change
@@ -41,130 +41,32 @@ module.exports = function(config) {
4141
nocache: false
4242
},
4343
{ pattern: "src/shared/tests/mock.js", type: 'module' },
44+
{ pattern: "src/headless/tests/mock.js", type: 'module' },
4445

45-
{ pattern: "src/headless/plugins/blocklist/tests/blocklist.js", type: 'module' },
46-
{ pattern: "src/headless/plugins/bookmarks/tests/bookmarks.js", type: 'module' },
47-
{ pattern: "src/headless/plugins/bookmarks/tests/deprecated.js", type: 'module' },
48-
{ pattern: "src/headless/plugins/caps/tests/caps.js", type: 'module' },
49-
{ pattern: "src/headless/plugins/chat/tests/api.js", type: 'module' },
50-
{ pattern: "src/headless/plugins/chat/tests/chat.js", type: 'module' },
51-
{ pattern: "src/headless/plugins/disco/tests/disco.js", type: 'module' },
52-
{ pattern: "src/headless/plugins/mam/tests/api.js", type: 'module' },
53-
{ pattern: "src/headless/plugins/muc/tests/affiliations.js", type: 'module' },
54-
{ pattern: "src/headless/plugins/muc/tests/messages.js", type: 'module' },
55-
{ pattern: "src/headless/plugins/muc/tests/muc.js", type: 'module' },
56-
{ pattern: "src/headless/plugins/muc/tests/occupants.js", type: 'module' },
57-
{ pattern: "src/headless/plugins/muc/tests/pruning.js", type: 'module' },
58-
{ pattern: "src/headless/plugins/muc/tests/registration.js", type: 'module' },
59-
{ pattern: "src/headless/plugins/ping/tests/ping.js", type: 'module' },
60-
{ pattern: "src/headless/plugins/pubsub/tests/config.js", type: 'module' },
61-
{ pattern: "src/headless/plugins/roster/tests/presence.js", type: 'module' },
62-
{ pattern: "src/headless/plugins/smacks/tests/smacks.js", type: 'module' },
63-
{ pattern: "src/headless/plugins/status/tests/status.js", type: 'module' },
46+
// Ideally this should go into the headless test runner
6447
{ pattern: "src/headless/plugins/vcard/tests/update.js", type: 'module' },
65-
{ pattern: "src/headless/shared/settings/tests/settings.js", type: 'module' },
66-
{ pattern: "src/headless/tests/converse.js", type: 'module' },
67-
{ pattern: "src/headless/tests/eventemitter.js", type: 'module' },
68-
{ pattern: "src/plugins/adhoc-views/tests/adhoc.js", type: 'module' },
69-
{ pattern: "src/plugins/bookmark-views/tests/bookmarks-list.js", type: 'module' },
70-
{ pattern: "src/plugins/bookmark-views/tests/bookmarks.js", type: 'module' },
71-
{ pattern: "src/plugins/bookmark-views/tests/deprecated.js", type: 'module' },
72-
{ pattern: "src/plugins/chatview/tests/actions.js", type: 'module' },
73-
{ pattern: "src/plugins/chatview/tests/chatbox.js", type: 'module' },
74-
{ pattern: "src/plugins/chatview/tests/corrections.js", type: 'module' },
75-
{ pattern: "src/plugins/chatview/tests/deprecated-retractions.js", type: 'module' },
76-
{ pattern: "src/plugins/chatview/tests/emojis.js", type: 'module' },
77-
{ pattern: "src/plugins/chatview/tests/http-file-upload.js", type: 'module' },
78-
{ pattern: "src/plugins/chatview/tests/markers.js", type: 'module' },
79-
{ pattern: "src/plugins/chatview/tests/me-messages.js", type: 'module' },
80-
{ pattern: "src/plugins/chatview/tests/message-audio.js", type: 'module' },
81-
{ pattern: "src/plugins/chatview/tests/message-avatar.js", type: 'module' },
82-
{ pattern: "src/plugins/chatview/tests/message-form.js", type: 'module' },
83-
{ pattern: "src/plugins/chatview/tests/message-gifs.js", type: 'module' },
84-
{ pattern: "src/plugins/chatview/tests/message-images.js", type: 'module' },
85-
{ pattern: "src/plugins/chatview/tests/message-videos.js", type: 'module' },
86-
{ pattern: "src/plugins/chatview/tests/messages.js", type: 'module' },
87-
{ pattern: "src/plugins/chatview/tests/oob.js", type: 'module' },
88-
{ pattern: "src/plugins/chatview/tests/receipts.js", type: 'module' },
89-
{ pattern: "src/plugins/chatview/tests/retractions.js", type: 'module' },
90-
{ pattern: "src/plugins/chatview/tests/spoilers.js", type: 'module' },
91-
{ pattern: "src/plugins/chatview/tests/styling.js", type: 'module' },
92-
{ pattern: "src/plugins/chatview/tests/unreads.js", type: 'module' },
93-
{ pattern: "src/plugins/chatview/tests/xss.js", type: 'module' },
94-
{ pattern: "src/plugins/controlbox/tests/controlbox.js", type: 'module' },
95-
{ pattern: "src/plugins/controlbox/tests/login.js", type: 'module' },
96-
{ pattern: "src/plugins/disco-views/tests/disco-browser.js", type: 'module' },
97-
{ pattern: "src/plugins/headlines-view/tests/headline.js", type: 'module' },
98-
{ pattern: "src/plugins/mam-views/tests/mam.js", type: 'module' },
99-
{ pattern: "src/plugins/mam-views/tests/placeholder.js", type: 'module' },
100-
{ pattern: "src/plugins/minimize/tests/minchats.js", type: 'module' },
101-
{ pattern: "src/plugins/muc-views/tests/actions.js", type: 'module' },
102-
{ pattern: "src/plugins/muc-views/tests/autocomplete.js", type: 'module' },
103-
{ pattern: "src/plugins/muc-views/tests/commands.js", type: 'module' },
104-
{ pattern: "src/plugins/muc-views/tests/component.js", type: 'module' },
105-
{ pattern: "src/plugins/muc-views/tests/corrections.js", type: 'module' },
106-
{ pattern: "src/plugins/muc-views/tests/csn.js", type: 'module' },
107-
{ pattern: "src/plugins/muc-views/tests/deprecated-retractions.js", type: 'module' },
108-
{ pattern: "src/plugins/muc-views/tests/disco.js", type: 'module' },
109-
{ pattern: "src/plugins/muc-views/tests/drafts.js", type: 'module' },
110-
{ pattern: "src/plugins/muc-views/tests/emojis.js", type: 'module' },
111-
{ pattern: "src/plugins/muc-views/tests/hats.js", type: 'module' },
112-
{ pattern: "src/plugins/muc-views/tests/http-file-upload.js", type: 'module' },
113-
{ pattern: "src/plugins/muc-views/tests/info-messages.js", type: 'module' },
114-
{ pattern: "src/plugins/muc-views/tests/mam.js", type: 'module' },
115-
{ pattern: "src/plugins/muc-views/tests/markers.js", type: 'module' },
116-
{ pattern: "src/plugins/muc-views/tests/me-messages.js", type: 'module' },
117-
{ pattern: "src/plugins/muc-views/tests/member-lists.js", type: 'module' },
118-
{ pattern: "src/plugins/muc-views/tests/mentions.js", type: 'module' },
119-
{ pattern: "src/plugins/muc-views/tests/mep.js", type: 'module' },
120-
{ pattern: "src/plugins/muc-views/tests/modtools.js", type: 'module' },
121-
{ pattern: "src/plugins/muc-views/tests/muc-add-modal.js", type: 'module' },
122-
{ pattern: "src/plugins/muc-views/tests/muc-api.js", type: 'module' },
123-
{ pattern: "src/plugins/muc-views/tests/muc-avatar.js", type: 'module' },
124-
{ pattern: "src/plugins/muc-views/tests/muc-list-modal.js", type: 'module' },
125-
{ pattern: "src/plugins/muc-views/tests/muc-mentions.js", type: 'module' },
126-
{ pattern: "src/plugins/muc-views/tests/muc-messages.js", type: 'module' },
127-
{ pattern: "src/plugins/muc-views/tests/muc-private-messages.js", type: 'module' },
128-
{ pattern: "src/plugins/muc-views/tests/muc-registration.js", type: 'module' },
129-
{ pattern: "src/plugins/muc-views/tests/muc.js", type: 'module' },
130-
{ pattern: "src/plugins/muc-views/tests/mute.js", type: 'module' },
131-
{ pattern: "src/plugins/muc-views/tests/nickname.js", type: 'module' },
132-
{ pattern: "src/plugins/muc-views/tests/occupants-filter.js", type: 'module' },
133-
{ pattern: "src/plugins/muc-views/tests/occupants.js", type: 'module' },
134-
{ pattern: "src/plugins/muc-views/tests/probes.js", type: 'module' },
135-
{ pattern: "src/plugins/muc-views/tests/rai.js", type: 'module' },
136-
{ pattern: "src/plugins/muc-views/tests/retractions.js", type: 'module' },
137-
{ pattern: "src/plugins/muc-views/tests/styling.js", type: 'module' },
138-
{ pattern: "src/plugins/muc-views/tests/unfurls.js", type: 'module' },
139-
{ pattern: "src/plugins/muc-views/tests/xss.js", type: 'module' },
140-
{ pattern: "src/plugins/notifications/tests/notification.js", type: 'module' },
141-
{ pattern: "src/plugins/omemo/tests/corrections.js", type: 'module' },
142-
{ pattern: "src/plugins/omemo/tests/media-sharing.js", type: 'module' },
143-
{ pattern: "src/plugins/omemo/tests/muc.js", type: 'module' },
144-
{ pattern: "src/plugins/omemo/tests/omemo.js", type: 'module' },
145-
{ pattern: "src/plugins/profile/tests/password-reset.js", type: 'module' },
146-
{ pattern: "src/plugins/profile/tests/profile.js", type: 'module' },
147-
{ pattern: "src/plugins/profile/tests/status.js", type: 'module' },
148-
{ pattern: "src/plugins/push/tests/push.js", type: 'module' },
149-
{ pattern: "src/plugins/register/tests/register.js", type: 'module' },
150-
{ pattern: "src/plugins/roomslist/tests/grouplists.js", type: 'module' },
151-
{ pattern: "src/plugins/roomslist/tests/roomslist.js", type: 'module' },
152-
{ pattern: "src/plugins/rootview/tests/root.js", type: 'module' },
153-
{ pattern: "src/plugins/rosterview/tests/add-contact-modal.js", type: 'module' },
154-
{ pattern: "src/plugins/rosterview/tests/blocklist.js", type: 'module' },
155-
{ pattern: "src/plugins/rosterview/tests/new-chat-modal.js", type: 'module' },
156-
{ pattern: "src/plugins/rosterview/tests/presence.js", type: 'module' },
157-
{ pattern: "src/plugins/rosterview/tests/protocol.js", type: 'module' },
158-
{ pattern: "src/plugins/rosterview/tests/blocklist.js", type: 'module' },
159-
{ pattern: "src/plugins/rosterview/tests/requesting_contacts.js", type: 'module' },
160-
{ pattern: "src/plugins/rosterview/tests/roster.js", type: 'module' },
161-
{ pattern: "src/plugins/rosterview/tests/unsaved-contacts.js", type: 'module' },
162-
{ pattern: "src/shared/modals/tests/user-details-modal.js", type: 'module' },
163-
{ pattern: "src/utils/tests/url.js", type: 'module' },
164-
{ pattern: "src/i18n/tests/i18n.js", type: 'module' },
16548

166-
// For some reason this test causes issues when its run earlier
167-
{ pattern: "src/headless/tests/persistence.js", type: 'module' },
49+
{ pattern: "src/i18n/tests/i18n.js", type: 'module' },
50+
{ pattern: "src/plugins/adhoc-views/tests/*.js", type: 'module' },
51+
{ pattern: "src/plugins/bookmark-views/tests/*.js", type: 'module' },
52+
{ pattern: "src/plugins/chatview/tests/*.js", type: 'module' },
53+
{ pattern: "src/plugins/controlbox/tests/*.js", type: 'module' },
54+
{ pattern: "src/plugins/disco-views/tests/*.js", type: 'module' },
55+
{ pattern: "src/plugins/headlines-view/tests/*.js", type: 'module' },
56+
{ pattern: "src/plugins/mam-views/tests/*.js", type: 'module' },
57+
{ pattern: "src/plugins/minimize/tests/*.js", type: 'module' },
58+
{ pattern: "src/plugins/muc-views/tests/*.js", type: 'module' },
59+
{ pattern: "src/plugins/notifications/tests/*.js", type: 'module' },
60+
{ pattern: "src/plugins/omemo/tests/*.js", type: 'module' },
61+
{ pattern: "src/plugins/profile/tests/*.js", type: 'module' },
62+
{ pattern: "src/plugins/push/tests/*.js", type: 'module' },
63+
{ pattern: "src/plugins/register/tests/*.js", type: 'module' },
64+
{ pattern: "src/plugins/roomslist/tests/*.js", type: 'module' },
65+
{ pattern: "src/plugins/rootview/tests/*.js", type: 'module' },
66+
{ pattern: "src/plugins/rosterview/tests/*.js", type: 'module' },
67+
{ pattern: "src/plugins/rosterview/tests/requesting_contacts.js", type: 'module' },
68+
{ pattern: "src/shared/modals/tests/*.js", type: 'module' },
69+
{ pattern: "src/utils/tests/*.js", type: 'module' },
16870
],
16971

17072
proxies: {

0 commit comments

Comments
 (0)