nexo/services/core/server/tests
2026-05-30 08:01:21 +09:00
..
exif_samples chore(upstream): refresh core snapshot 2026-05-30 08:01:21 +09:00
1x10000.png Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
1x10000_expected_preview.png Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
1x10000_expected_thumb.png Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
10000x1.png Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
10000x1_expected_preview.png Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
10000x1_expected_thumb.png Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
bulk_insert_chunk_test.jsonl chore(upstream): refresh core snapshot 2026-05-30 08:01:21 +09:00
channel-role-has-permission.csv Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
custom-schema-cpa.ldif Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
custom-schema-objectID.ldif Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
development-private-key.asc Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
development-public-key.asc Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
development-public-key.gpg Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
export_test.zip Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
export_test_with_nested_jsonl.zip chore(upstream): refresh core snapshot 2026-05-30 08:01:21 +09:00
Fake_Team_Import.rar Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
Fake_Team_Import.tar.gz Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
Fake_Team_Import.zip Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
fill_test_8bit_palette.png Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
fill_test_8bit_palette_out.png Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
fill_test_8bit_rgb.png Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
fill_test_8bit_rgb_out.png Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
fill_test_8bit_rgba.png Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
fill_test_8bit_rgba_out.png Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
fill_test_16bit_rgb.png Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
fill_test_16bit_rgb_out.png Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
fill_test_16bit_rgba.png Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
fill_test_16bit_rgba_out.png Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
fill_test_input.png Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
fill_test_opaque.png Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
fill_test_output_45x45.png chore(upstream): refresh core snapshot 2026-05-30 08:01:21 +09:00
fill_test_output_45x100.png chore(upstream): refresh core snapshot 2026-05-30 08:01:21 +09:00
fill_test_output_100x45.png chore(upstream): refresh core snapshot 2026-05-30 08:01:21 +09:00
fill_test_output_100x100.png chore(upstream): refresh core snapshot 2026-05-30 08:01:21 +09:00
group-role-has-permission.csv Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
import_test.zip Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
large_image_file.jpg Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
large_lzw_frame.gif Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
mini_preview_test_qa_data_graph_16x16_q90.jpg chore(upstream): refresh core snapshot 2026-05-30 08:01:21 +09:00
orientation_test.jpeg Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
orientation_test_1.jpeg Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
orientation_test_1_expected_preview.jpeg chore(upstream): refresh core snapshot 2026-05-30 08:01:21 +09:00
orientation_test_1_expected_thumb.jpeg chore(upstream): refresh core snapshot 2026-05-30 08:01:21 +09:00
orientation_test_2.jpeg Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
orientation_test_2_expected_preview.jpeg chore(upstream): refresh core snapshot 2026-05-30 08:01:21 +09:00
orientation_test_2_expected_thumb.jpeg chore(upstream): refresh core snapshot 2026-05-30 08:01:21 +09:00
orientation_test_3.jpeg Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
orientation_test_3_expected_preview.jpeg chore(upstream): refresh core snapshot 2026-05-30 08:01:21 +09:00
orientation_test_3_expected_thumb.jpeg chore(upstream): refresh core snapshot 2026-05-30 08:01:21 +09:00
orientation_test_4.jpeg Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
orientation_test_4_expected_preview.jpeg chore(upstream): refresh core snapshot 2026-05-30 08:01:21 +09:00
orientation_test_4_expected_thumb.jpeg chore(upstream): refresh core snapshot 2026-05-30 08:01:21 +09:00
orientation_test_5.jpeg Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
orientation_test_5_expected_preview.jpeg chore(upstream): refresh core snapshot 2026-05-30 08:01:21 +09:00
orientation_test_5_expected_thumb.jpeg chore(upstream): refresh core snapshot 2026-05-30 08:01:21 +09:00
orientation_test_6.jpeg Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
orientation_test_6_expected_preview.jpeg chore(upstream): refresh core snapshot 2026-05-30 08:01:21 +09:00
orientation_test_6_expected_thumb.jpeg chore(upstream): refresh core snapshot 2026-05-30 08:01:21 +09:00
orientation_test_7.jpeg Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
orientation_test_7_expected_preview.jpeg chore(upstream): refresh core snapshot 2026-05-30 08:01:21 +09:00
orientation_test_7_expected_thumb.jpeg chore(upstream): refresh core snapshot 2026-05-30 08:01:21 +09:00
orientation_test_8.jpeg Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
orientation_test_8_expected_preview.jpeg chore(upstream): refresh core snapshot 2026-05-30 08:01:21 +09:00
orientation_test_8_expected_thumb.jpeg chore(upstream): refresh core snapshot 2026-05-30 08:01:21 +09:00
orientation_test_9.jpeg Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
orientation_test_9_expected_preview.jpeg chore(upstream): refresh core snapshot 2026-05-30 08:01:21 +09:00
orientation_test_9_expected_thumb.jpeg chore(upstream): refresh core snapshot 2026-05-30 08:01:21 +09:00
preview_test_qa_data_graph_1024.png chore(upstream): refresh core snapshot 2026-05-30 08:01:21 +09:00
qa-data-graph.png Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
qa-data.ldif Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
README.md chore(upstream): refresh core snapshot 2026-05-30 08:01:21 +09:00
sample-doc.doc Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
sample-doc.docx Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
sample-doc.odp Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
sample-doc.odt Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
sample-doc.pdf Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
sample-doc.pptx Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
sample-doc.rtf Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
shared_channel_sync_plugin_test.go.tmpl chore(upstream): refresh core snapshot 2026-05-30 08:01:21 +09:00
slack-import-test-channels.json Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
slack-import-test-direct-messages.json Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
slack-import-test-group-direct-messages.json Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
slack-import-test-posts.json Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
slack-import-test-private-channels.json Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
slack-import-test-users.json Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
test-attachments.md Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
test-config.json chore(upstream): refresh core snapshot 2026-05-30 08:01:21 +09:00
test-data-graph.png Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
test-data.ldif Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
test-emoticons1.md Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
test-emoticons2.md Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
test-emoticons3.md Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
test-emoticons4.md Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
test-emoticons5.md Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
test-emoticons6.md Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
test-hashtags.md Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
test-link-preview.md Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
test-links.md Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
test-markdown-basics.md Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
test-markdown-lists.md Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
test-mentions.md Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
test-public-key.plugin.gpg Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
test-search.md Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
test-slack-attachments.json Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
test-syntax-highlighting.md Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
test-tables.md Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
test.png Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
test.svg Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
test.tiff Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
test_expected_tiff_preview.jpeg chore(upstream): refresh core snapshot 2026-05-30 08:01:21 +09:00
test_expected_tiff_thumb.jpeg chore(upstream): refresh core snapshot 2026-05-30 08:01:21 +09:00
test_img_diff_A.png Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
test_img_diff_B.png Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
testarchive.zip Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
testgif.gif Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
testgif_expected_preview.jpg chore(upstream): refresh core snapshot 2026-05-30 08:01:21 +09:00
testgif_expected_thumbnail.jpg chore(upstream): refresh core snapshot 2026-05-30 08:01:21 +09:00
testjpg.jpg Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
testplugin-v0.0.2.tar.gz Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
testplugin-v0.0.2.tar.gz.asc Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
testplugin-v0.0.2.tar.gz.sig Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
testplugin.tar.gz Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
testplugin.tar.gz.asc Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
testplugin.tar.gz.sig Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
testplugin2.tar.gz Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
testplugin2.tar.gz.asc Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
testplugin2.tar.gz.sig Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
testwebp.webp Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
tls_test_cert.pem Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00
tls_test_key.pem Initial nexo monorepo migration 2026-05-26 10:42:29 +09:00

Testing Text Processing

The text processing tests located in the doc/developer/tests folder are designed for use with the /test url command in isolated non-production test environments. This command posts the raw contents of a specified .md file in the doc/developer/tests folder into Mattermost.

Turning on /test

Access the System Console from the Main Menu. Under Environment > Developer make sure that Enable Testing Commands is set to true, then click Save. You may also change this setting from config.json by setting "EnableTesting": true. This setting is intended only for isolated non-production environments with test users and sample data, and must never be enabled in production. Changing this setting requires a server restart to take effect.

Running the Tests

In the text input box in Mattermost, type: /test url [file-name-in-testing-folder].md. Some examples:

/test url test-emoticons.md
/test url test-links.md

Notes:

  1. If a test has prerequisites, make sure your Mattermost setup meets the requirements described at the top of the test file.
  2. Some tests are over 4000 characters in length and will render across multiple posts.

Manual Testing

It is possible to manually test specific sections of any test, instead of using the /test command. Do this by clicking Raw in the header for the file when its open in GitHub, then copy and paste any section into Mattermost to post it. Manual testing only supports sections of 4000 characters or less per post.

Test plugins

There are three test plugins: testplugin.tar.gz, testplugin-v0.0.2.tar.gz, and testplugin2.tar.gz. These are use in some integration tests in the api4 package. Any changes to the plugin bundles require updating the corresponding signatures.

First, import the public and private development key:

gpg --import ./development-public-key.gpg
gpg --import ./development-private-key.asc

This has to be done only once.

Then update the signatures:

gpg -u F3FACE45E0DE642C8BD6A8E64C7C6562C192CC1F --verbose --personal-digest-preferences SHA256 --detach-sign testplugin.tar.gz
gpg -u F3FACE45E0DE642C8BD6A8E64C7C6562C192CC1F --verbose --personal-digest-preferences SHA256 --detach-sign --armor testplugin.tar.gz
gpg -u F3FACE45E0DE642C8BD6A8E64C7C6562C192CC1F --verbose --personal-digest-preferences SHA256 --detach-sign testplugin-v0.0.2.tar.gz
gpg -u F3FACE45E0DE642C8BD6A8E64C7C6562C192CC1F --verbose --personal-digest-preferences SHA256 --detach-sign --armor testplugin-v0.0.2.tar.gz
gpg -u F3FACE45E0DE642C8BD6A8E64C7C6562C192CC1F --verbose --personal-digest-preferences SHA256 --detach-sign testplugin2.tar.gz
gpg -u F3FACE45E0DE642C8BD6A8E64C7C6562C192CC1F --verbose --personal-digest-preferences SHA256 --detach-sign --armor testplugin2.tar.gz

Finally, include the updates bundles and signatures in your commit.

Image fixtures

The api4 package tests compare server-generated image thumbnails and previews against fixture files (e.g. orientation_test_1_expected_thumb.jpeg). Comparisons are pixel-based with a small tolerance, so minor encoder drift across patch releases is handled automatically.

However, Go's image/jpeg encoder has changed incompatibly across major versions (e.g. Go 1.25 → 1.26). When upgrading Go, regenerate the JPEG fixtures by running:

go test -run "TestUploadFiles/.*thumbnail" ./channels/api4/ -args -update-fixtures
go test -run "TestGenerateMiniPreviewImage" ./channels/app/imaging/ -args -update-fixtures

Run both from server/. Commit the updated fixture files alongside the Go version bump.