88 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
| import Vue from 'vue';
 | |
| import FileRow from '~/vue_shared/components/file_row.vue';
 | |
| import { file } from 'spec/ide/helpers';
 | |
| import mountComponent from '../../helpers/vue_mount_component_helper';
 | |
| 
 | |
| describe('File row component', () => {
 | |
|   let vm;
 | |
| 
 | |
|   function createComponent(propsData) {
 | |
|     const FileRowComponent = Vue.extend(FileRow);
 | |
| 
 | |
|     vm = mountComponent(FileRowComponent, propsData);
 | |
|   }
 | |
| 
 | |
|   afterEach(() => {
 | |
|     vm.$destroy();
 | |
|   });
 | |
| 
 | |
|   it('renders name', () => {
 | |
|     createComponent({
 | |
|       file: file('t4'),
 | |
|       level: 0,
 | |
|     });
 | |
| 
 | |
|     const name = vm.$el.querySelector('.file-row-name');
 | |
| 
 | |
|     expect(name.textContent.trim()).toEqual(vm.file.name);
 | |
|   });
 | |
| 
 | |
|   it('emits toggleTreeOpen on click', () => {
 | |
|     createComponent({
 | |
|       file: {
 | |
|         ...file('t3'),
 | |
|         type: 'tree',
 | |
|       },
 | |
|       level: 0,
 | |
|     });
 | |
|     spyOn(vm, '$emit').and.stub();
 | |
| 
 | |
|     vm.$el.querySelector('.file-row').click();
 | |
| 
 | |
|     expect(vm.$emit).toHaveBeenCalledWith('toggleTreeOpen', vm.file.path);
 | |
|   });
 | |
| 
 | |
|   it('calls scrollIntoView if made active', done => {
 | |
|     createComponent({
 | |
|       file: {
 | |
|         ...file(),
 | |
|         type: 'blob',
 | |
|         active: false,
 | |
|       },
 | |
|       level: 0,
 | |
|     });
 | |
| 
 | |
|     spyOn(vm, 'scrollIntoView').and.stub();
 | |
| 
 | |
|     vm.file.active = true;
 | |
| 
 | |
|     vm.$nextTick(() => {
 | |
|       expect(vm.scrollIntoView).toHaveBeenCalled();
 | |
| 
 | |
|       done();
 | |
|     });
 | |
|   });
 | |
| 
 | |
|   it('indents row based on level', () => {
 | |
|     createComponent({
 | |
|       file: file('t4'),
 | |
|       level: 2,
 | |
|     });
 | |
| 
 | |
|     expect(vm.$el.querySelector('.file-row-name').style.marginLeft).toBe('32px');
 | |
|   });
 | |
| 
 | |
|   it('renders header for file', () => {
 | |
|     createComponent({
 | |
|       file: {
 | |
|         isHeader: true,
 | |
|         path: 'app/assets',
 | |
|         tree: [],
 | |
|       },
 | |
|       level: 0,
 | |
|     });
 | |
| 
 | |
|     expect(vm.$el.querySelector('.js-file-row-header')).not.toBe(null);
 | |
|   });
 | |
| });
 |