diff --git a/app/styles/components/_class-field-desc.scss b/app/styles/components/_class-field-desc.scss index 9bbe0a2a..f48da7da 100644 --- a/app/styles/components/_class-field-desc.scss +++ b/app/styles/components/_class-field-desc.scss @@ -50,6 +50,10 @@ h3 .access{ dd { display: inline-block; } + dl.parameters { + margin-left: 24px; + margin-block-start: 0; + } } .method, .property, .event { diff --git a/app/templates/components/class-field-description.hbs b/app/templates/components/class-field-description.hbs index f1e25788..8204c607 100644 --- a/app/templates/components/class-field-description.hbs +++ b/app/templates/components/class-field-description.hbs @@ -55,6 +55,17 @@
{{param.name}}
{{param.type}}
{{param.description}}
+ {{#if param.props}} +
+ {{#each param.props as |prop|}} +
+
{{prop.name}}
+
{{prop.type}}
+
{{prop.description}}
+
+ {{/each}} +
+ {{/if}} {{/each}} {{#if this.field.return}} diff --git a/tests/integration/components/class-field-description-test.js b/tests/integration/components/class-field-description-test.js index 8c0bb93e..dd8a0249 100644 --- a/tests/integration/components/class-field-description-test.js +++ b/tests/integration/components/class-field-description-test.js @@ -1,7 +1,13 @@ import EmberObject from '@ember/object'; import { module, test } from 'qunit'; import { setupRenderingTest } from 'ember-qunit'; -import { render, click, findAll, triggerEvent } from '@ember/test-helpers'; +import { + render, + click, + findAll, + find, + triggerEvent, +} from '@ember/test-helpers'; import hbs from 'htmlbars-inline-precompile'; module('Integration | Component | class field description', function (hooks) { @@ -74,4 +80,27 @@ module('Integration | Component | class field description', function (hooks) { assert.verifySteps(['updateAnchorAction']); }); + + test('parameter props are displayed', async function (assert) { + this.set('type', 'method'); + this.set( + 'field', + EmberObject.create({ + access: 'public', + deprecated: true, + name: 'concat', + description: 'concatenates', + params: [ + { name: 'param1' }, + { name: 'param2' }, + { name: 'options', props: [{ name: 'prop1' }, { name: 'prop2' }] }, + ], + }) + ); + + await render(hbs`{{class-field-description type=type field=field}}`); + + assert.dom(find('.prop:nth-child(1) dt')).hasText('prop1'); + assert.dom(find('.prop:nth-child(2) dt')).hasText('prop2'); + }); });