Skip to content

Commit 64f1c7e

Browse files
brianjgeigeradlius
andauthored
[ENG-2771] Unencode special characters in Registries Custom Metadata (#1195)
* Add helper to fix strings in the templates * Add integration test for fix-string helper Co-authored-by: Yuhuai Liu <yuhuai@cos.io>
1 parent 5efad4e commit 64f1c7e

File tree

5 files changed

+28
-3
lines changed

5 files changed

+28
-3
lines changed
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import Helper from '@ember/component/helper';
2+
import fixSpecialChars from 'ember-osf-web/utils/fix-special-char';
3+
4+
export default class FixString extends Helper {
5+
compute([textToFix]: [string]): string {
6+
return fixSpecialChars(textToFix);
7+
}
8+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export { default } from 'app-components/helpers/fix-string';

lib/osf-components/addon/components/provider-metadata-display/template.hbs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,6 @@
1212
data-test-registration-provider-metadata-field-value={{@field.field_name}}
1313
local-class='ProviderMetadataValue'
1414
>
15-
{{@field.field_value}}
15+
{{fix-string @field.field_value}}
1616
</span>
1717
</div>
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { render } from '@ember/test-helpers';
2+
import { hbs } from 'ember-cli-htmlbars';
3+
import { setupEngineRenderingTest } from 'ember-osf-web/tests/helpers/engines';
4+
import { module, test } from 'qunit';
5+
6+
module('Integration | Helper | fix-string', hooks => {
7+
setupEngineRenderingTest(hooks, 'registries');
8+
9+
test('it renders', async function(assert) {
10+
await render(hbs`
11+
{{fix-string 'Unchanging &lt; &amp; &gt;'}}
12+
`);
13+
14+
assert.dom(this.element).hasText('Unchanging < & >');
15+
});
16+
});

tests/engines/registries/acceptance/overview/overview-test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -461,7 +461,7 @@ module('Registries | Acceptance | overview.overview', hooks => {
461461
provider: server.schema.registrationProviders.find('osf'),
462462
providerSpecificMetadata: [
463463
{ field_name: 'Field 1', field_value: '' },
464-
{ field_name: 'Field 2', field_value: 'Value 2' },
464+
{ field_name: 'Field 2', field_value: 'Value 2 &lt; &amp; &gt;' },
465465
],
466466
});
467467
const regTwo = server.create('registration', {
@@ -496,7 +496,7 @@ module('Registries | Acceptance | overview.overview', hooks => {
496496
assert.dom('[data-test-registration-provider-metadata-wrapper="Field 2"]')
497497
.isVisible('Non moderator can see the field 2 display component');
498498
assert.dom('[data-test-registration-provider-metadata-field-value="Field 2"')
499-
.containsText('Value 2', 'Non-moderator field two has the correct value');
499+
.containsText('Value 2 < & >', 'Non-moderator field two has the correct value');
500500

501501
await visit(`/${regTwo.id}/`);
502502
assert.dom('[data-test-edit-button="metadata"]').isVisible('Moderator can edit provider metadata');

0 commit comments

Comments
 (0)