uptime-kuma/test/backend-test
codercms dc1319882e feat: Add configurable response data storage for notifications
This is actualized version of this PR - https://github.com/louislam/uptime-kuma/pull/6192
But with tests and an additional change that allows to only store responses **for failed HTTP requests**.

Add response column to heartbeat table to store HTTP response data
* Add monitor configuration options: saveResponse (default: false), saveErrorResponse (default: false) and responseMaxLength (default: 10240 bytes)
* Response max length of 0 allows unlimited storage without truncation
* Response data accessible in notification templates via heartbeatJSON.response
* Add UI controls in monitor edit page with translations (EN)
* Only saves response data when explicitly enabled to minimize database impact

chore: Tests added

fix: Missing response field
2026-01-12 14:45:02 +03:00
..
monitor-conditions chore: enable formatting over the entire codebase in CI (#6655) 2026-01-09 02:10:36 +01:00
monitors chore: enable formatting over the entire codebase in CI (#6655) 2026-01-09 02:10:36 +01:00
notification-providers fix: Expand the logging around AggregateError (#6664) 2026-01-11 00:59:04 +00:00
check-translations.test.js chore: enable formatting over the entire codebase in CI (#6655) 2026-01-09 02:10:36 +01:00
README.md chore: enable formatting over the entire codebase in CI (#6655) 2026-01-09 02:10:36 +01:00
test-cert-hostname-match.js cert hostname 2026-01-01 16:39:00 +01:00
test-domain.js fix: Proper processing of date fields (Domain Expiry) with cleanup of unnecessary Date comparison functions (#6638) 2026-01-09 04:18:17 +01:00
test-migration.js chore: enable formatting over the entire codebase in CI (#6655) 2026-01-09 02:10:36 +01:00
test-monitor-response.js feat: Add configurable response data storage for notifications 2026-01-12 14:45:02 +03:00
test-status-page.js chore: enable formatting over the entire codebase in CI (#6655) 2026-01-09 02:10:36 +01:00
test-system-service.js chore: enable formatting over the entire codebase in CI (#6655) 2026-01-09 02:10:36 +01:00
test-uptime-calculator.js chore: enable formatting over the entire codebase in CI (#6655) 2026-01-09 02:10:36 +01:00
test-util-server.js fix: idn ping errors (#6662) 2026-01-11 19:28:07 +08:00
test-util.js fix: Proper processing of date fields (Domain Expiry) with cleanup of unnecessary Date comparison functions (#6638) 2026-01-09 04:18:17 +01:00

Node.js Test Runner

Documentation: https://nodejs.org/api/test.html

Create a test file in this directory with the name *.js.

Tip

Writing great tests is hard.

You can make our live much simpler by following this guidance:

  • Use describe() to group related tests
  • Use test() for individual test cases
  • One test per scenario
  • Use descriptive test names: function() [behavior] [condition]
  • Don't prefix with "Test" or "Should"

Template

const { describe, test } = require("node:test");
const assert = require("node:assert");

describe("Feature Name", () => {
  test("function() returns expected value when condition is met", () => {
    assert.strictEqual(1, 1);
  });
});

Run

npm run test-backend