Weee more tests
This commit is contained in:
		
							parent
							
								
									ff234d1646
								
							
						
					
					
						commit
						8cb9d9ecf3
					
				
					 4 changed files with 95 additions and 5 deletions
				
			
		|  | @ -3,6 +3,7 @@ | |||
|     @models={{this.sortedItems}} | ||||
|     tabindex="0" | ||||
|     class="shadow-md bg-gray-200 outline-none border border-gray-400 focus:border-teal-400 focus:shadow-lg" | ||||
|     data-test-id='meal-list-wrapper' | ||||
|     as |groupHasFocus selectedIndex groupActions|> | ||||
|     <SortableGroup | ||||
|       @onChange={{action this.reorderMeals}} | ||||
|  |  | |||
|  | @ -7,7 +7,7 @@ | |||
|         data-action-up | ||||
|         role="button" | ||||
|         class="text-gray-800 outline-none absolute left-0 top-0 p-2 m-4 bg-white rounded-lg border-2 border-gray-800 focus:border-teal-400 shadow-sm" | ||||
|         data-test-id='sort-down'> | ||||
|         data-test-id='sort-up'> | ||||
|         <svg class="fill-current" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M23.677 18.52c.914 1.523-.183 3.472-1.967 3.472h-19.414c-1.784 0-2.881-1.949-1.967-3.472l9.709-16.18c.891-1.483 3.041-1.48 3.93 0l9.709 16.18z"/></svg> | ||||
|       </button> | ||||
|       <button | ||||
|  | @ -16,7 +16,7 @@ | |||
|         data-action-down | ||||
|         role="button" | ||||
|         class="transform rotate-180 text-gray-800 outline-none absolute left-0 bottom-0 p-2 m-4 bg-white rounded-lg border-2 border-gray-800 focus:border-teal-400 shadow-sm" | ||||
|         data-test-id='sort-up'> | ||||
|         data-test-id='sort-down'> | ||||
|         <svg class="fill-current" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M23.677 18.52c.914 1.523-.183 3.472-1.967 3.472h-19.414c-1.784 0-2.881-1.949-1.967-3.472l9.709-16.18c.891-1.483 3.041-1.48 3.93 0l9.709 16.18z"/></svg> | ||||
|       </button> | ||||
|     {{/if}} | ||||
|  |  | |||
|  | @ -1,7 +1,7 @@ | |||
| import { module, test } from 'qunit'; | ||||
| import { setupRenderingTest } from 'ember-qunit'; | ||||
| import { setupMirage } from 'ember-cli-mirage/test-support'; | ||||
| import { render } from '@ember/test-helpers'; | ||||
| import { render, find, findAll, click, settled } from '@ember/test-helpers'; | ||||
| import { hbs } from 'ember-cli-htmlbars'; | ||||
| 
 | ||||
| module('Integration | Component | meal-list', function(hooks) { | ||||
|  | @ -16,7 +16,28 @@ module('Integration | Component | meal-list', function(hooks) { | |||
|     assert.dom('[data-test-id=meal-item]').exists({ count: 2 }); | ||||
|   }); | ||||
| 
 | ||||
|   // TODO Add sortable tests
 | ||||
|   test('it can focus list wrapper', async function(assert) { | ||||
|     await render(hbs`<MealList />`); | ||||
|     let element = find('[data-test-id=meal-list-wrapper]') | ||||
|     await element.focus(); | ||||
| 
 | ||||
|     assert.equal(element, document.activeElement); | ||||
|   }); | ||||
| 
 | ||||
|   test('it can reorder items via sort up/down links', async function(assert) { | ||||
|     await render(hbs`<MealList />`); | ||||
|     let element = find('[data-test-id=meal-list-wrapper]') | ||||
|     await element.focus(); | ||||
|     await settled(); | ||||
|     await click('[data-test-id=sort-down]'); | ||||
| 
 | ||||
|     assert.dom(findAll('[data-test-id=meal-name]')[0]).includesText('Meal 2'); | ||||
|     assert.dom(findAll('[data-test-id=meal-name]')[1]).includesText('Meal 1'); | ||||
| 
 | ||||
|     await click('[data-test-id=sort-up]'); | ||||
|     assert.dom(findAll('[data-test-id=meal-name]')[0]).includesText('Meal 1'); | ||||
|     assert.dom(findAll('[data-test-id=meal-name]')[1]).includesText('Meal 2'); | ||||
|   }); | ||||
| 
 | ||||
|   async function initMeals() { | ||||
|     let store = this.owner.lookup('service:store'); | ||||
|  |  | |||
|  | @ -1,6 +1,6 @@ | |||
| import { module, test } from 'qunit'; | ||||
| import { setupRenderingTest } from 'ember-qunit'; | ||||
| import { render } from '@ember/test-helpers'; | ||||
| import { render, click } from '@ember/test-helpers'; | ||||
| import { hbs } from 'ember-cli-htmlbars'; | ||||
| 
 | ||||
| module('Integration | Component | sortable-item-accessible', function(hooks) { | ||||
|  | @ -15,4 +15,72 @@ module('Integration | Component | sortable-item-accessible', function(hooks) { | |||
| 
 | ||||
|     assert.equal(this.element.textContent.trim(), 'yielded text'); | ||||
|   }); | ||||
| 
 | ||||
|   test('it does not yield sort buttons by default', async function(assert) { | ||||
|     await render(hbs`<SortableItemAccessible />`); | ||||
| 
 | ||||
|     assert.dom('[data-test-id=sort-up]').doesNotExist(); | ||||
|     assert.dom('[data-test-id=sort-down]').doesNotExist(); | ||||
|   }); | ||||
| 
 | ||||
|   test('it does not yield sort buttons if group does not have focus', async function(assert) { | ||||
|     await render(hbs` | ||||
|       <SortableItemAccessible | ||||
|         @currentIndex={{0}} | ||||
|         @selectedIndex={{0}} /> | ||||
|     `);
 | ||||
| 
 | ||||
|     assert.dom('[data-test-id=sort-up]').doesNotExist(); | ||||
|     assert.dom('[data-test-id=sort-down]').doesNotExist(); | ||||
|   }); | ||||
| 
 | ||||
|   test('it does not yield sort buttons if indices dont match', async function(assert) { | ||||
|     await render(hbs` | ||||
|       <SortableItemAccessible | ||||
|         @groupHasFocus={{true}} | ||||
|         @currentIndex={{0}} | ||||
|         @selectedIndex={{1}} /> | ||||
|     `);
 | ||||
| 
 | ||||
|     assert.dom('[data-test-id=sort-up]').doesNotExist(); | ||||
|     assert.dom('[data-test-id=sort-down]').doesNotExist(); | ||||
|   }); | ||||
| 
 | ||||
|   test('it shows sort buttons when group has focus and indicies match', async function(assert) { | ||||
|     this.mockFunction = () => {}; | ||||
| 
 | ||||
|     await render(hbs` | ||||
|       <SortableItemAccessible | ||||
|         @groupHasFocus={{true}} | ||||
|         @currentIndex={{0}} | ||||
|         @selectedIndex={{0}} | ||||
|         @orderItemUp={{this.mockFunction}} | ||||
|         @orderItemDown={{this.mockFunction}} | ||||
|         @handleBlur={{this.mockFunction}} /> | ||||
|     `);
 | ||||
| 
 | ||||
|     assert.dom('[data-test-id=sort-up]').exists(); | ||||
|     assert.dom('[data-test-id=sort-down]').exists(); | ||||
|   }); | ||||
| 
 | ||||
|   test('it handles actions', async function(assert) { | ||||
|     this.mockUp = () => { assert.step('up'); }; | ||||
|     this.mockDown = () => { assert.step('down'); }; | ||||
|     this.mockBlur = () => { assert.step('blur'); }; | ||||
| 
 | ||||
|     await render(hbs` | ||||
|       <SortableItemAccessible | ||||
|         @groupHasFocus={{true}} | ||||
|         @currentIndex={{0}} | ||||
|         @selectedIndex={{0}} | ||||
|         @orderItemUp={{this.mockUp}} | ||||
|         @orderItemDown={{this.mockDown}} | ||||
|         @handleBlur={{this.mockBlur}} /> | ||||
|     `);
 | ||||
| 
 | ||||
|     await click('[data-test-id=sort-up]'); | ||||
|     await click('[data-test-id=sort-down]'); | ||||
| 
 | ||||
|     assert.verifySteps(['up', 'blur', 'down']); | ||||
|   }); | ||||
| }); | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Ava Wroten
						Ava Wroten