50 lines
1.2 KiB
TypeScript
50 lines
1.2 KiB
TypeScript
// Copyright 2020 Signal Messenger, LLC
|
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
import { assert } from 'chai';
|
|
import { getTextWithMentions } from '../../util/getTextWithMentions';
|
|
|
|
describe('getTextWithMentions', () => {
|
|
describe('given mention replacements', () => {
|
|
it('replaces them', () => {
|
|
const bodyRanges = [
|
|
{
|
|
length: 1,
|
|
mentionUuid: 'abcdef',
|
|
replacementText: 'fred',
|
|
conversationID: 'x',
|
|
start: 4,
|
|
},
|
|
];
|
|
const text = "Hey \uFFFC, I'm here";
|
|
assert.strictEqual(
|
|
getTextWithMentions(bodyRanges, text),
|
|
"Hey @fred, I'm here"
|
|
);
|
|
});
|
|
|
|
it('sorts them to go from back to front', () => {
|
|
const bodyRanges = [
|
|
{
|
|
length: 1,
|
|
mentionUuid: 'blarg',
|
|
replacementText: 'jerry',
|
|
conversationID: 'x',
|
|
start: 0,
|
|
},
|
|
{
|
|
length: 1,
|
|
mentionUuid: 'abcdef',
|
|
replacementText: 'fred',
|
|
conversationID: 'x',
|
|
start: 7,
|
|
},
|
|
];
|
|
const text = "\uFFFC says \uFFFC, I'm here";
|
|
assert.strictEqual(
|
|
getTextWithMentions(bodyRanges, text),
|
|
"@jerry says @fred, I'm here"
|
|
);
|
|
});
|
|
});
|
|
});
|