- Introduced a new utility function to extract member names from cross-team recipient strings. - Added a CrossTeamTeamBadge component for displaying team names with consistent styling. - Updated ActivityItem to utilize the new member name extraction and badge component, enhancing the display of cross-team messages. - Enhanced tests to validate the functionality of the new member name extraction method.
44 lines
1.8 KiB
TypeScript
44 lines
1.8 KiB
TypeScript
import { describe, expect, it } from 'vitest';
|
|
|
|
import {
|
|
getCrossTeamSentMemberName,
|
|
getCrossTeamSentTarget,
|
|
getSystemMessageLabel,
|
|
isQualifiedExternalRecipient,
|
|
} from '@renderer/components/team/activity/ActivityItem';
|
|
|
|
describe('ActivityItem legacy system message fallback', () => {
|
|
it('recognizes historical assignment and review message wording', () => {
|
|
expect(getSystemMessageLabel('New task assigned to you: #abcd1234 "Implement feature".')).toBe(
|
|
'Task assignment'
|
|
);
|
|
expect(getSystemMessageLabel('Task #abcd1234 approved by reviewer.')).toBe('Task approved');
|
|
expect(getSystemMessageLabel('Task #abcd1234 needs fixes before approval.')).toBe(
|
|
'Review changes requested'
|
|
);
|
|
});
|
|
|
|
it('does not treat new controller-authored summaries as legacy system noise', () => {
|
|
expect(getSystemMessageLabel('Review request for #abcd1234')).toBeNull();
|
|
expect(getSystemMessageLabel('Approved abcd1234')).toBeNull();
|
|
expect(getSystemMessageLabel('Fix request for abcd1234')).toBeNull();
|
|
});
|
|
|
|
it('does not classify dotted local teammates as external recipients', () => {
|
|
expect(isQualifiedExternalRecipient('ops.bot', 'my-team', new Set(['ops.bot']))).toBe(false);
|
|
expect(isQualifiedExternalRecipient('team-best.user', 'my-team', new Set(['ops.bot']))).toBe(
|
|
true
|
|
);
|
|
});
|
|
|
|
it('recognizes pseudo cross-team recipients in activity rows', () => {
|
|
expect(getCrossTeamSentTarget('cross-team:team-best', 'my-team', new Set(['ops.bot']))).toBe(
|
|
'team-best'
|
|
);
|
|
expect(getCrossTeamSentTarget('team-best.user', 'my-team', new Set(['ops.bot']))).toBe(
|
|
'team-best'
|
|
);
|
|
expect(getCrossTeamSentMemberName('team-best.user')).toBe('user');
|
|
expect(getCrossTeamSentMemberName('cross-team:team-best')).toBeNull();
|
|
});
|
|
});
|