import defaultResourceModel from '../defaultResourceModel'; import linkReplacement from './linkReplacement'; import { describe, test, expect } from '@jest/globals'; describe('linkReplacement', () => { test('should handle non-resource links', () => { const r = linkReplacement('https://example.com/test').html; expect(r).toBe(''); }); test('should handle non-resource links - simple rendering', () => { const r = linkReplacement('https://example.com/test', { linkRenderingType: 2 }).html; expect(r).toBe(''); }); test('should handle non-resource links with single quotes in it', () => { // Handles a link such as: // [Google](https://www.goo'onclick=javascript:alert(/1/);f=') const r = linkReplacement('https://www.goo\'onclick=javascript:alert(/1/);f=\'', { linkRenderingType: 1 }).html; expect(r).toBe(''); }); test('should handle resource links - downloaded status', () => { const resourceId = 'f6afba55bdf74568ac94f8d1e3578d2c'; const r = linkReplacement(`:/${resourceId}`, { ResourceModel: defaultResourceModel, resources: { [resourceId]: { item: {}, localState: { fetch_status: 2, // FETCH_STATUS_DONE }, }, }, }).html; expect(r).toBe(``); }); test('should handle resource links - idle status', () => { const resourceId = 'f6afba55bdf74568ac94f8d1e3578d2c'; const r = linkReplacement(`:/${resourceId}`, { ResourceModel: defaultResourceModel, resources: { [resourceId]: { item: {}, localState: { fetch_status: 0, // FETCH_STATUS_IDLE }, }, }, }).html; // Since the icon is embedded as SVG, we only check for the prefix const expectedPrefix = `