11import { render } from '@ember/test-helpers' ;
22import { hbs } from 'ember-cli-htmlbars' ;
3- import { TestContext } from 'ember-intl/test-support' ;
3+ import { TestContext , t } from 'ember-intl/test-support' ;
44import { click } from 'ember-osf-web/tests/helpers' ;
55import { setupRenderingTest } from 'ember-qunit' ;
66import moment from 'moment' ;
77import { module , test } from 'qunit' ;
88
9+ import styles from 'osf-components/components/file-browser/file-item/styles' ;
10+
911interface Links {
1012 html : string ;
1113 download : string ;
1214}
1315
1416interface FileItem {
1517 name : string ;
18+ displayName : string ;
1619 links : Links ;
1720 dateModified : string ;
1821 id : string ;
22+ isCheckedOut ?: boolean ;
23+ showAsUnviewed ?: boolean ;
1924}
2025
2126interface Manager {
@@ -37,6 +42,7 @@ module('Integration | Component | file-browser :: file-item', hooks => {
3742 this . item = {
3843 id : 'fakeId' ,
3944 name : 'Push&Pull' ,
45+ displayName : 'Push&Pull' ,
4046 links : {
4147 html : 'thisisafakelink' ,
4248 download : 'thisisafakedownloadlink' ,
@@ -59,7 +65,7 @@ module('Integration | Component | file-browser :: file-item', hooks => {
5965 ) ;
6066 assert . dom ( '[data-test-indented="false"][data-test-file-list-item]' ) . exists ( 'File item exists' ) ;
6167 assert . dom ( '[data-test-file-name]' ) . exists ( 'File name exists' ) ;
62- assert . dom ( '[data-test-file-name]' ) . hasText ( this . item . name , 'File name is correct' ) ;
68+ assert . dom ( '[data-test-file-name]' ) . hasText ( this . item . displayName , 'File name is correct' ) ;
6369 assert . dom ( '[data-test-file-modified-date]' ) . exists ( 'Modified date exists' ) ;
6470 assert . dom ( '[data-test-file-modified-date]' ) . hasText (
6571 moment ( this . item . dateModified ) . format ( 'YYYY-MM-DD hh:mm A' ) ,
@@ -79,7 +85,7 @@ module('Integration | Component | file-browser :: file-item', hooks => {
7985 ) ;
8086 assert . dom ( '[data-test-indented="true"][data-test-file-list-item]' ) . exists ( 'File item exists' ) ;
8187 assert . dom ( '[data-test-file-name]' ) . exists ( 'File name exists' ) ;
82- assert . dom ( '[data-test-file-name]' ) . hasText ( this . item . name , 'File name is correct' ) ;
88+ assert . dom ( '[data-test-file-name]' ) . hasText ( this . item . displayName , 'File name is correct' ) ;
8389 assert . dom ( '[data-test-file-modified-date]' ) . exists ( 'Modified date exists' ) ;
8490 assert . dom ( '[data-test-file-modified-date]' ) . hasText (
8591 moment ( this . item . dateModified ) . format ( 'YYYY-MM-DD hh:mm A' ) ,
@@ -90,4 +96,31 @@ module('Integration | Component | file-browser :: file-item', hooks => {
9096 assert . dom ( '[data-test-embed-button]' ) . exists ( 'Embed button exists' ) ;
9197 assert . dom ( '[data-test-social-sharing-button]' ) . exists ( 'Share button exists' ) ;
9298 } ) ;
99+
100+ test ( 'it renders checked-out file' , async function ( this : FileItemTestContext , assert ) {
101+ this . manager . parentFolder = 'fakeParentFolder' ;
102+ this . item . isCheckedOut = true ;
103+ await render (
104+ hbs `<FileBrowser::FileItem @manager={{this.manager}} @item={{this.item}} @isDesktop={{true}} />` ,
105+ ) ;
106+ assert . dom ( '[data-test-file-list-checkout]' ) . exists ( 'Checkout icon exists' ) ;
107+ assert . dom ( '[data-test-file-list-link]' ) . hasAria ( 'label' ,
108+ t ( 'osf-components.file-browser.view_file' , { fileName : this . item . displayName } ) , 'Correct aria-label' ) ;
109+ assert . dom ( '[data-test-file-list-link]' ) . doesNotHaveClass ( styles . Unviewed , 'Link is not styled as unviewed' ) ;
110+ assert . dom ( '[data-test-file-list-link]' ) . hasText ( this . item . displayName , 'Link has correct text' ) ;
111+ } ) ;
112+
113+ test ( 'it renders unviewed file' , async function ( this : FileItemTestContext , assert ) {
114+ this . manager . parentFolder = 'fakeParentFolder' ;
115+ this . item . showAsUnviewed = true ;
116+ await render (
117+ hbs `<FileBrowser::FileItem @manager={{this.manager}} @item={{this.item}} @isDesktop={{true}} />` ,
118+ ) ;
119+ assert . dom ( '[data-test-file-list-checkout]' ) . doesNotExist ( 'Checkout icon does not exist' ) ;
120+ assert . dom ( '[data-test-file-list-link]' ) . hasAria ( 'label' ,
121+ t ( 'osf-components.file-browser.view_unseen_file' , { fileName : this . item . displayName } ) ,
122+ 'Correct aria-label' ) ;
123+ assert . dom ( '[data-test-file-list-link]' ) . hasClass ( styles . Unviewed , 'Link is styled as unviewed' ) ;
124+ assert . dom ( '[data-test-file-list-link]' ) . hasText ( this . item . displayName , 'Link has correct text' ) ;
125+ } ) ;
93126} ) ;
0 commit comments