29 lines
1.5 KiB
JavaScript
29 lines
1.5 KiB
JavaScript
const test = require('node:test');
|
|
const assert = require('node:assert');
|
|
const { describeTransfer } = require('../src/features/transferNotice.js');
|
|
|
|
test('Erfolg nennt Repo und Dateizahl', () => {
|
|
assert.deepStrictEqual(describeTransfer({ status: 'ok', repo: 'a/b', files: 3 }), { title: 'Upload fertig', body: 'a/b: 3 Dateien hochgeladen.' });
|
|
assert.match(describeTransfer({ status: 'ok', repo: 'a/b', files: 1 }).body, /1 Datei hochgeladen/);
|
|
});
|
|
|
|
test('Erfolg ohne bekannte Dateizahl bleibt lesbar', () => {
|
|
assert.strictEqual(describeTransfer({ status: 'ok', repo: 'a/b', files: null }).body, 'a/b: Upload hochgeladen.');
|
|
});
|
|
|
|
test('Abgebrochene Uploads melden nichts', () => {
|
|
assert.strictEqual(describeTransfer({ status: 'abgebrochen', repo: 'a/b' }), null);
|
|
assert.strictEqual(describeTransfer(null), null);
|
|
});
|
|
|
|
test('Fehler zeigt fehlgeschlagene Dateien oder den Fehlertext', () => {
|
|
assert.strictEqual(describeTransfer({ status: 'fehler', repo: 'a/b', failed: 2 }).title, 'Upload fehlgeschlagen');
|
|
assert.match(describeTransfer({ status: 'fehler', repo: 'a/b', failed: 2 }).body, /2 Dateien fehlgeschlagen/);
|
|
assert.match(describeTransfer({ status: 'fehler', repo: 'a/b', error: 'Server nicht erreichbar' }).body, /Server nicht erreichbar/);
|
|
assert.match(describeTransfer({ status: 'fehler', repo: '' }).body, /Unbekannter Fehler/);
|
|
});
|
|
|
|
test('Langer Fehlertext wird gekürzt', () => {
|
|
assert.ok(describeTransfer({ status: 'fehler', repo: 'a/b', error: 'x'.repeat(500) }).body.length < 200);
|
|
});
|