mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-27 00:06:30 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			142 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			142 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /* eslint-env jasmine */
 | |
| /* global Split */
 | |
| /* eslint-disable no-var, func-names, prefer-arrow-callback, object-shorthand, prefer-template */
 | |
| 
 | |
| describe('Split', function() {
 | |
|     beforeEach(function() {
 | |
|         document.body.style.width = '800px'
 | |
|         document.body.style.height = '600px'
 | |
| 
 | |
|         this.a = document.createElement('div')
 | |
|         this.b = document.createElement('div')
 | |
|         this.c = document.createElement('div')
 | |
| 
 | |
|         this.a.id = 'a'
 | |
|         this.b.id = 'b'
 | |
|         this.c.id = 'c'
 | |
| 
 | |
|         document.body.appendChild(this.a)
 | |
|         document.body.appendChild(this.b)
 | |
|         document.body.appendChild(this.c)
 | |
|     })
 | |
| 
 | |
|     afterEach(function() {
 | |
|         document.body.removeChild(this.a)
 | |
|         document.body.removeChild(this.b)
 | |
|         document.body.removeChild(this.c)
 | |
|     })
 | |
| 
 | |
|     it('splits in two when given two elements', function() {
 | |
|         Split(['#a', '#b'])
 | |
| 
 | |
|         expect(this.a.style.width).toBe('50%')
 | |
|         expect(this.b.style.width).toBe('50%')
 | |
|     })
 | |
| 
 | |
|     it('splits in three when given three elements', function() {
 | |
|         Split(['#a', '#b', '#c'])
 | |
| 
 | |
|         expect(this.a.style.width).toBe('33.33%')
 | |
|         expect(this.b.style.width).toBe('33.33%')
 | |
|         expect(this.c.style.width).toBe('33.33%')
 | |
|     })
 | |
| 
 | |
|     it('splits vertically when direction is vertical', function() {
 | |
|         Split(['#a', '#b'], {
 | |
|             direction: 'vertical',
 | |
|         })
 | |
| 
 | |
|         expect(this.a.style.height).toBe('50%')
 | |
|         expect(this.b.style.height).toBe('50%')
 | |
|     })
 | |
| 
 | |
|     it('splits in percentages when given sizes', function() {
 | |
|         Split(['#a', '#b'], {
 | |
|             sizes: [25, 75],
 | |
|         })
 | |
| 
 | |
|         expect(this.a.style.width).toBe('25%')
 | |
|         expect(this.b.style.width).toBe('75%')
 | |
|     })
 | |
| 
 | |
|     it('splits in percentages when given sizes', function() {
 | |
|         Split(['#a', '#b'], {
 | |
|             sizes: [25, 75],
 | |
|         })
 | |
| 
 | |
|         expect(this.a.style.width).toBe('25%')
 | |
|         expect(this.b.style.width).toBe('75%')
 | |
|     })
 | |
| 
 | |
|     it('accounts for gutter size', function() {
 | |
|         Split(['#a', '#b'], {
 | |
|             gutterSize: 20,
 | |
|         })
 | |
| 
 | |
|         expect(this.a.style.width).toBe('50%')
 | |
|         expect(this.b.style.width).toBe('50%')
 | |
|     })
 | |
| 
 | |
|     it('accounts for gutter size with more than two elements', function() {
 | |
|         Split(['#a', '#b', '#c'], {
 | |
|             gutterSize: 20,
 | |
|         })
 | |
| 
 | |
|         expect(this.a.style.width).toBe('33.33%')
 | |
|         expect(this.b.style.width).toBe('33.33%')
 | |
|         expect(this.c.style.width).toBe('33.33%')
 | |
|     })
 | |
| 
 | |
|     it('accounts for gutter size when direction is vertical', function() {
 | |
|         Split(['#a', '#b'], {
 | |
|             direction: 'vertical',
 | |
|             gutterSize: 20,
 | |
|         })
 | |
| 
 | |
|         expect(this.a.style.height).toBe('50%')
 | |
|         expect(this.b.style.height).toBe('50%')
 | |
|     })
 | |
| 
 | |
|     it('accounts for gutter size with more than two elements when direction is vertical', function() {
 | |
|         Split(['#a', '#b', '#c'], {
 | |
|             direction: 'vertical',
 | |
|             gutterSize: 20,
 | |
|         })
 | |
| 
 | |
|         expect(this.a.style.height).toBe('33.33%')
 | |
|         expect(this.b.style.height).toBe('33.33%')
 | |
|         expect(this.c.style.height).toBe('33.33%')
 | |
|     })
 | |
| 
 | |
|     it('set size directly when given css values', function() {
 | |
|         Split(['#a', '#b'], {
 | |
|             sizes: ['150px', '640px'],
 | |
|         })
 | |
| 
 | |
|         expect(this.a.style.width).toBe('150px')
 | |
|         expect(this.b.style.width).toBe('640px')
 | |
|     })
 | |
| 
 | |
|     it('adjusts sizes using setSizes', function() {
 | |
|         var split = Split(['#a', '#b'])
 | |
| 
 | |
|         split.setSizes([70, 30])
 | |
| 
 | |
|         expect(this.a.style.width).toBe('70%')
 | |
|         expect(this.b.style.width).toBe('30%')
 | |
|     })
 | |
| 
 | |
|     it('sets element styles using the elementStyle function', function() {
 | |
|         Split(['#a', '#b'], {
 | |
|             elementStyle: function(dimension, size) {
 | |
|                 return {
 | |
|                     width: size + '%',
 | |
|                 }
 | |
|             },
 | |
|         })
 | |
| 
 | |
|         expect(this.a.style.width).toBe('50%')
 | |
|         expect(this.b.style.width).toBe('50%')
 | |
|     })
 | |
| })
 |