1
0
Fork 0

isSelected per file-table-item

This commit is contained in:
Joe Wroten 2018-12-16 13:28:57 -06:00
parent a26469efc9
commit a654423557
5 changed files with 26 additions and 2 deletions

View file

@ -1,7 +1,14 @@
import Component from '@ember/component';
import { computed } from '@ember/object';
const defaultFile = {};
const defaultSelectedFilePaths = [];
export default Component.extend({
file: defaultFile,
selectedFilePaths: defaultSelectedFilePaths,
isSelected: computed('file.path', 'selectedFilePaths', function() {
return this.selectedFilePaths.includes(this.file.path);
}),
});

View file

@ -1,6 +1,9 @@
import Component from '@ember/component';
const defaultFiles = [];
const defaultSelectedFilePaths = [];
export default Component.extend({
files: defaultFiles,
selectedFilePaths: defaultSelectedFilePaths,
});

View file

@ -1,6 +1,6 @@
<tr data-test-id="file-table-item">
<td data-test-id="file-table-item-selected">
&nbsp;
{{if isSelected "Selected"}}
</td>
<td data-test-id="file-table-item-name">
{{file.name}}

View file

@ -15,7 +15,7 @@
</thead>
<tbody>
{{#each files as | file |}}
{{file-table-item file=file selected=selected}}
{{file-table-item file=file selectedFilePaths=selectedFilePaths}}
{{/each}}
</tbody>
</table>

View file

@ -44,4 +44,18 @@ module('Integration | Component | file-table-item', function(hooks) {
assert.equal(find('[data-test-id=file-table-item-status]').textContent.trim(), 'available', 'Renders correct status text');
assert.equal(find('[data-test-id=file-table-status-icon]').classList.contains('file-table-item-status-available'), true, 'Status icon has expected class');
});
test('it handles toggling selected status based on incoming selectedFilePaths', async function(assert) {
this.set('file', genericFile());
this.set('selectedFilePaths', []);
await render(hbs`{{file-table-item file=file selectedFilePaths=selectedFilePaths}}`);
assert.equal(find('[data-test-id=file-table-item-selected]').textContent.trim(), '', 'Not selected by default');
this.set('selectedFilePaths', [this.file.path]);
assert.equal(find('[data-test-id=file-table-item-selected]').textContent.trim(), 'Selected', 'Not selected by default');
this.set('selectedFilePaths', []);
assert.equal(find('[data-test-id=file-table-item-selected]').textContent.trim(), '', 'No longer selected');
});
});