Skip to content

Commit e4675f1

Browse files
authored
Merge pull request #780 from sdahlbac/display-props
Display object properties
2 parents 7276afb + 315c7ee commit e4675f1

File tree

3 files changed

+45
-1
lines changed

3 files changed

+45
-1
lines changed

app/styles/components/_class-field-desc.scss

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,10 @@ h3 .access{
5050
dd {
5151
display: inline-block;
5252
}
53+
dl.parameters {
54+
margin-left: 24px;
55+
margin-block-start: 0;
56+
}
5357
}
5458

5559
.method, .property, .event {

app/templates/components/class-field-description.hbs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,17 @@
5555
<dt>{{param.name}}</dt>
5656
<dd class="parameter-type">{{param.type}}</dd>
5757
<dd>{{param.description}}</dd>
58+
{{#if param.props}}
59+
<dl class="parameters">
60+
{{#each param.props as |prop|}}
61+
<div class="prop">
62+
<dt>{{prop.name}}</dt>
63+
<dd class="parameter-type">{{prop.type}}</dd>
64+
<dd>{{prop.description}}</dd>
65+
</div>
66+
{{/each}}
67+
</dl>
68+
{{/if}}
5869
</div>
5970
{{/each}}
6071
{{#if this.field.return}}

tests/integration/components/class-field-description-test.js

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,13 @@
11
import EmberObject from '@ember/object';
22
import { module, test } from 'qunit';
33
import { setupRenderingTest } from 'ember-qunit';
4-
import { render, click, findAll, triggerEvent } from '@ember/test-helpers';
4+
import {
5+
render,
6+
click,
7+
findAll,
8+
find,
9+
triggerEvent,
10+
} from '@ember/test-helpers';
511
import hbs from 'htmlbars-inline-precompile';
612

713
module('Integration | Component | class field description', function (hooks) {
@@ -74,4 +80,27 @@ module('Integration | Component | class field description', function (hooks) {
7480

7581
assert.verifySteps(['updateAnchorAction']);
7682
});
83+
84+
test('parameter props are displayed', async function (assert) {
85+
this.set('type', 'method');
86+
this.set(
87+
'field',
88+
EmberObject.create({
89+
access: 'public',
90+
deprecated: true,
91+
name: 'concat',
92+
description: 'concatenates',
93+
params: [
94+
{ name: 'param1' },
95+
{ name: 'param2' },
96+
{ name: 'options', props: [{ name: 'prop1' }, { name: 'prop2' }] },
97+
],
98+
})
99+
);
100+
101+
await render(hbs`{{class-field-description type=type field=field}}`);
102+
103+
assert.dom(find('.prop:nth-child(1) dt')).hasText('prop1');
104+
assert.dom(find('.prop:nth-child(2) dt')).hasText('prop2');
105+
});
77106
});

0 commit comments

Comments
 (0)