1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
import composerJsonLinker from '~/vue_shared/components/source_viewer/plugins/utils/composer_json_linker';
import { COMPOSER_JSON_EXAMPLES } from '../mock_data';
describe('Highlight.js plugin for linking composer.json dependencies', () => {
it('mutates the input value by wrapping dependency names and versions in anchors', () => {
const inputValue =
'<span class="hljs-attr">"drupal/erp_common""</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"dev-master"</span>';
const outputValue =
'<span class="hljs-attr">"drupal/erp_common""</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"dev-master"</span>';
const hljsResultMock = { value: inputValue };
const output = composerJsonLinker(hljsResultMock, COMPOSER_JSON_EXAMPLES.withoutLink);
expect(output).toBe(outputValue);
});
});
const getInputValue = (dependencyString, version) =>
`<span class="hljs-attr">"${dependencyString}"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"${version}"</span>`;
const getOutputValue = (dependencyString, version, expectedHref) =>
`<span class="hljs-attr">"<a href="${expectedHref}" target="_blank" rel="nofollow noreferrer noopener">${dependencyString}</a>"</span>: <span class="hljs-attr">"<a href="${expectedHref}" target="_blank" rel="nofollow noreferrer noopener">${version}</a>"</span>`;
describe('Highlight.js plugin for linking Godeps.json dependencies', () => {
it.each`
type | dependency | version | expectedHref
${'packagist'} | ${'composer/installers'} | ${'^1.2'} | ${'https://packagist.org/packages/composer/installers'}
${'drupal'} | ${'drupal/bootstrap'} | ${'3.x-dev'} | ${'https://www.drupal.org/project/bootstrap'}
`(
'mutates the input value by wrapping dependency names in anchors and altering path when needed',
({ type, dependency, version, expectedHref }) => {
const inputValue = getInputValue(dependency, version);
const outputValue = getOutputValue(dependency, version, expectedHref);
const hljsResultMock = { value: inputValue };
const output = composerJsonLinker(hljsResultMock, COMPOSER_JSON_EXAMPLES[type]);
expect(output).toBe(outputValue);
},
);
});
|