mattermost/server/tests
Doug Lauder 96e4d7a769
Some checks are pending
API / build (push) Waiting to run
Server CI / Compute Go Version (push) Waiting to run
Server CI / Check mocks (push) Blocked by required conditions
Server CI / Check go mod tidy (push) Blocked by required conditions
Server CI / check-style (push) Blocked by required conditions
Server CI / Check serialization methods for hot structs (push) Blocked by required conditions
Server CI / Vet API (push) Blocked by required conditions
Server CI / Check migration files (push) Blocked by required conditions
Server CI / Generate email templates (push) Blocked by required conditions
Server CI / Check store layers (push) Blocked by required conditions
Server CI / Check mmctl docs (push) Blocked by required conditions
Server CI / Postgres with binary parameters (push) Blocked by required conditions
Server CI / Postgres (shard 0) (push) Blocked by required conditions
Server CI / Postgres (shard 1) (push) Blocked by required conditions
Server CI / Postgres (shard 2) (push) Blocked by required conditions
Server CI / Postgres (shard 3) (push) Blocked by required conditions
Server CI / Merge Postgres Test Results (push) Blocked by required conditions
Server CI / Postgres (FIPS) (push) Blocked by required conditions
Server CI / Generate Test Coverage (push) Blocked by required conditions
Server CI / Run mmctl tests (push) Blocked by required conditions
Server CI / Run mmctl tests (FIPS) (push) Blocked by required conditions
Server CI / Build mattermost server app (push) Blocked by required conditions
Web App CI / check-lint (push) Waiting to run
Web App CI / check-i18n (push) Blocked by required conditions
Web App CI / check-external-links (push) Blocked by required conditions
Web App CI / check-types (push) Blocked by required conditions
Web App CI / test (platform) (push) Blocked by required conditions
Web App CI / test (mattermost-redux) (push) Blocked by required conditions
Web App CI / test (channels shard 1/4) (push) Blocked by required conditions
Web App CI / test (channels shard 2/4) (push) Blocked by required conditions
Web App CI / test (channels shard 3/4) (push) Blocked by required conditions
Web App CI / test (channels shard 4/4) (push) Blocked by required conditions
Web App CI / upload-coverage (push) Blocked by required conditions
Web App CI / build (push) Blocked by required conditions
MM-68076 Chunk bulk INSERTs to respect PostgreSQL parameter limit (#35767)
* MM-68076 Chunk bulk INSERTs to respect PostgreSQL 65,535 parameter limit (#35761)

PostgreSQL's wire protocol uses a 16-bit integer for parameter count,
  causing bulk imports to fail when multi-row INSERTs exceed 65,535
  parameters. Add a generic chunkSlice helper that splits rows into
  sub-batches capped at 50,000 parameters, and apply it to
  saveMultipleMembers (channel), SaveMultipleMembers (team), and
  SaveMultipleMemberships (thread). Normal operations (< 3,333 rows)
  remain a single INSERT with negligible overhead.

  Wrap all chunked INSERT loops in transactions so multi-chunk batches
  are atomic — previously channel and team member inserts could leave
  partial data if a later chunk failed. Add threadMembershipSliceColumns
  helper so thread membership chunk size is derived dynamically.

  Includes integration tests for multi-chunk insertion and rollback
  verification for channel members, team members, posts, and groups.
2026-03-30 22:40:40 -04:00
..
exif_samples Fix EXIF profile picture orientation bug (#34275) (#35594) 2026-03-19 15:46:21 +00:00
1x10000.png Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
1x10000_expected_preview.png Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
1x10000_expected_thumb.png Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
10000x1.png Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
10000x1_expected_preview.png Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
10000x1_expected_thumb.png Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
bulk_insert_chunk_test.jsonl MM-68076 Chunk bulk INSERTs to respect PostgreSQL parameter limit (#35767) 2026-03-30 22:40:40 -04:00
channel-role-has-permission.csv Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
crop_test_input.png [MM-62191] Remove disintegration/imaging dependency (#29657) 2025-02-03 11:04:00 +05:30
crop_test_output_45x45.png [MM-62191] Remove disintegration/imaging dependency (#29657) 2025-02-03 11:04:00 +05:30
crop_test_output_45x100.png [MM-62191] Remove disintegration/imaging dependency (#29657) 2025-02-03 11:04:00 +05:30
crop_test_output_100x45.png [MM-62191] Remove disintegration/imaging dependency (#29657) 2025-02-03 11:04:00 +05:30
crop_test_output_100x100.png [MM-62191] Remove disintegration/imaging dependency (#29657) 2025-02-03 11:04:00 +05:30
custom-schema-cpa.ldif MM-62704: Add Custom Profile Attributes to the LDAP synchronization process (#30443) 2025-04-11 19:41:26 +02:00
custom-schema-objectID.ldif MM-62930: Add validation of LDAP attribute values. (#30419) 2025-04-14 13:29:42 +02:00
development-private-key.asc Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
development-public-key.asc Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
development-public-key.gpg Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
export_test.zip Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
export_test_with_nested_jsonl.zip fix: only match root-level JSONL files when importing a zip (#35481) 2026-03-05 15:20:17 +01:00
Fake_Team_Import.rar Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
Fake_Team_Import.tar.gz Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
Fake_Team_Import.zip Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
fill_test_8bit_palette.png Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
fill_test_8bit_palette_out.png Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
fill_test_8bit_rgb.png Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
fill_test_8bit_rgb_out.png Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
fill_test_8bit_rgba.png Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
fill_test_8bit_rgba_out.png Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
fill_test_16bit_rgb.png Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
fill_test_16bit_rgb_out.png Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
fill_test_16bit_rgba.png Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
fill_test_16bit_rgba_out.png Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
fill_test_input.png [MM-62191] Remove disintegration/imaging dependency (#29657) 2025-02-03 11:04:00 +05:30
fill_test_opaque.png Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
fill_test_output_45x45.png [MM-62191] Remove disintegration/imaging dependency (#29657) 2025-02-03 11:04:00 +05:30
fill_test_output_45x100.png [MM-62191] Remove disintegration/imaging dependency (#29657) 2025-02-03 11:04:00 +05:30
fill_test_output_100x45.png [MM-62191] Remove disintegration/imaging dependency (#29657) 2025-02-03 11:04:00 +05:30
fill_test_output_100x100.png [MM-62191] Remove disintegration/imaging dependency (#29657) 2025-02-03 11:04:00 +05:30
fit_test_input.png [MM-62191] Remove disintegration/imaging dependency (#29657) 2025-02-03 11:04:00 +05:30
fit_test_output_45x45.png [MM-62191] Remove disintegration/imaging dependency (#29657) 2025-02-03 11:04:00 +05:30
fit_test_output_45x100.png [MM-62191] Remove disintegration/imaging dependency (#29657) 2025-02-03 11:04:00 +05:30
fit_test_output_100x45.png [MM-62191] Remove disintegration/imaging dependency (#29657) 2025-02-03 11:04:00 +05:30
fit_test_output_100x100.png [MM-62191] Remove disintegration/imaging dependency (#29657) 2025-02-03 11:04:00 +05:30
group-role-has-permission.csv Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
import_test.zip [MM-62775] Fix: Bulk export not completing (#30044) 2025-02-04 17:56:11 -05:00
large_image_file.jpg Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
large_lzw_frame.gif MM-52720: use an io.LimitedReader in gif frame counting (#23372) 2023-05-11 12:47:07 +03:00
orientation_test.jpeg Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
orientation_test_1.jpeg Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
orientation_test_1_expected_preview.jpeg Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
orientation_test_1_expected_thumb.jpeg Simplify thumbnail resizing logic to ensure target constraints are respected (#28012) 2024-09-06 21:44:32 +02:00
orientation_test_2.jpeg Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
orientation_test_2_expected_preview.jpeg [MM-62191] Remove disintegration/imaging dependency (#29657) 2025-02-03 11:04:00 +05:30
orientation_test_2_expected_thumb.jpeg Simplify thumbnail resizing logic to ensure target constraints are respected (#28012) 2024-09-06 21:44:32 +02:00
orientation_test_3.jpeg Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
orientation_test_3_expected_preview.jpeg [MM-62191] Remove disintegration/imaging dependency (#29657) 2025-02-03 11:04:00 +05:30
orientation_test_3_expected_thumb.jpeg Simplify thumbnail resizing logic to ensure target constraints are respected (#28012) 2024-09-06 21:44:32 +02:00
orientation_test_4.jpeg Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
orientation_test_4_expected_preview.jpeg Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
orientation_test_4_expected_thumb.jpeg Simplify thumbnail resizing logic to ensure target constraints are respected (#28012) 2024-09-06 21:44:32 +02:00
orientation_test_5.jpeg Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
orientation_test_5_expected_preview.jpeg Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
orientation_test_5_expected_thumb.jpeg Simplify thumbnail resizing logic to ensure target constraints are respected (#28012) 2024-09-06 21:44:32 +02:00
orientation_test_6.jpeg Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
orientation_test_6_expected_preview.jpeg [MM-62191] Remove disintegration/imaging dependency (#29657) 2025-02-03 11:04:00 +05:30
orientation_test_6_expected_thumb.jpeg Simplify thumbnail resizing logic to ensure target constraints are respected (#28012) 2024-09-06 21:44:32 +02:00
orientation_test_7.jpeg Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
orientation_test_7_expected_preview.jpeg [MM-62191] Remove disintegration/imaging dependency (#29657) 2025-02-03 11:04:00 +05:30
orientation_test_7_expected_thumb.jpeg Simplify thumbnail resizing logic to ensure target constraints are respected (#28012) 2024-09-06 21:44:32 +02:00
orientation_test_8.jpeg Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
orientation_test_8_expected_preview.jpeg [MM-62191] Remove disintegration/imaging dependency (#29657) 2025-02-03 11:04:00 +05:30
orientation_test_8_expected_thumb.jpeg Simplify thumbnail resizing logic to ensure target constraints are respected (#28012) 2024-09-06 21:44:32 +02:00
orientation_test_9.jpeg [MM-63436] Replace Exif parser dependency (#30479) 2025-04-01 13:57:43 -06:00
orientation_test_9_expected_preview.jpeg [MM-63436] Replace Exif parser dependency (#30479) 2025-04-01 13:57:43 -06:00
orientation_test_9_expected_thumb.jpeg [MM-63436] Replace Exif parser dependency (#30479) 2025-04-01 13:57:43 -06:00
qa-data-graph.png Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
qa-data.ldif Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
README.md MM-53355: install transitionally prepackaged plugins to filestore (#24225) 2023-08-17 12:46:57 -03:00
sample-doc.doc Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
sample-doc.docx Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
sample-doc.odp Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
sample-doc.odt Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
sample-doc.pdf Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
sample-doc.pptx Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
sample-doc.rtf Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
slack-import-test-channels.json Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
slack-import-test-direct-messages.json Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
slack-import-test-group-direct-messages.json Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
slack-import-test-posts.json Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
slack-import-test-private-channels.json Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
slack-import-test-users.json Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
test-attachments.md Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
test-config.json [MM-67605] Add DCR redirect URI allowlist for OAuth DCR (#35291) 2026-02-19 01:06:08 +00:00
test-data-graph.png Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
test-data.ldif MM-62930: Add validation of LDAP attribute values. (#30419) 2025-04-14 13:29:42 +02:00
test-emoticons1.md Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
test-emoticons2.md Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
test-emoticons3.md Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
test-emoticons4.md Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
test-emoticons5.md Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
test-emoticons6.md Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
test-hashtags.md Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
test-link-preview.md Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
test-links.md Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
test-markdown-basics.md Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
test-markdown-lists.md Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
test-mentions.md Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
test-public-key.plugin.gpg Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
test-search.md Update link preview URL in test-search.md (#27398) 2024-06-20 14:48:22 +08:00
test-slack-attachments.json Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
test-syntax-highlighting.md Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
test-tables.md Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
test.png Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
test.svg Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
test.tiff Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
test_expected_tiff_preview.jpeg Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
test_expected_tiff_thumb.jpeg Simplify thumbnail resizing logic to ensure target constraints are respected (#28012) 2024-09-06 21:44:32 +02:00
test_img_diff_A.png [MM-57500] Streaming support for importing file attachments (#26629) 2024-04-19 15:49:33 -06:00
test_img_diff_B.png [MM-57500] Streaming support for importing file attachments (#26629) 2024-04-19 15:49:33 -06:00
testarchive.zip Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
testgif.gif Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
testgif_expected_preview.jpg Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
testgif_expected_thumbnail.jpg [MM-62191] Remove disintegration/imaging dependency (#29657) 2025-02-03 11:04:00 +05:30
testjpg.jpg Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
testplugin-v0.0.2.tar.gz MM-53355: install transitionally prepackaged plugins to filestore (#24225) 2023-08-17 12:46:57 -03:00
testplugin-v0.0.2.tar.gz.asc MM-53355: install transitionally prepackaged plugins to filestore (#24225) 2023-08-17 12:46:57 -03:00
testplugin-v0.0.2.tar.gz.sig MM-53355: install transitionally prepackaged plugins to filestore (#24225) 2023-08-17 12:46:57 -03:00
testplugin.tar.gz Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
testplugin.tar.gz.asc MM-53355: install transitionally prepackaged plugins to filestore (#24225) 2023-08-17 12:46:57 -03:00
testplugin.tar.gz.sig MM-53355: install transitionally prepackaged plugins to filestore (#24225) 2023-08-17 12:46:57 -03:00
testplugin2.tar.gz Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
testplugin2.tar.gz.asc MM-53355: install transitionally prepackaged plugins to filestore (#24225) 2023-08-17 12:46:57 -03:00
testplugin2.tar.gz.sig MM-53355: install transitionally prepackaged plugins to filestore (#24225) 2023-08-17 12:46:57 -03:00
testwebp.webp Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
tls_test_cert.pem Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00
tls_test_key.pem Mono repo -> Master (#22553) 2023-03-22 17:22:27 -04:00

Testing Text Processing

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

Turning on /test

Access the System Console from the Main Menu. Under Service Settings make sure that Enable Testing is set to true, then click Save. You may also change this setting from config.json by setting ”EnableTesting”: true. 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.