mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 02:16:05 +01:00 
			
		
		
		
	remove submodules
This commit is contained in:
		
							
								
								
									
										196
									
								
								packages/splitjs/test/split.spec.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										196
									
								
								packages/splitjs/test/split.spec.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,196 @@ | ||||
| /* eslint-env jasmine */ | ||||
| /* global Split */ | ||||
| /* eslint-disable no-var, func-names, prefer-arrow-callback, object-shorthand, prefer-template */ | ||||
|  | ||||
| function calcParts(expr) { | ||||
|     var re = /calc\(([\d]*\.?[\d]*?)%\s?-\s?([\d]+)px\)/ | ||||
|     var m = re.exec(expr) | ||||
|  | ||||
|     return { | ||||
|         percentage: parseFloat(m[1]), | ||||
|         pixels: parseInt(m[2], 10), | ||||
|     } | ||||
| } | ||||
|  | ||||
| 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).toContain('calc(50% - 5px)') | ||||
|         expect(this.b.style.width).toContain('calc(50% - 5px)') | ||||
|     }) | ||||
|  | ||||
|     it('splits in three when given three elements', function() { | ||||
|         Split(['#a', '#b', '#c']) | ||||
|  | ||||
|         expect(calcParts(this.a.style.width).percentage).toBeCloseTo(33.33) | ||||
|         expect(calcParts(this.b.style.width).percentage).toBeCloseTo(33.33) | ||||
|         expect(calcParts(this.c.style.width).percentage).toBeCloseTo(33.33) | ||||
|  | ||||
|         expect(calcParts(this.a.style.width).pixels).toBe(5) | ||||
|         expect(calcParts(this.b.style.width).pixels).toBe(10) | ||||
|         expect(calcParts(this.c.style.width).pixels).toBe(5) | ||||
|     }) | ||||
|  | ||||
|     it('splits vertically when direction is vertical', function() { | ||||
|         Split(['#a', '#b'], { | ||||
|             direction: 'vertical', | ||||
|         }) | ||||
|  | ||||
|         expect(this.a.style.height).toContain('calc(50% - 5px)') | ||||
|         expect(this.b.style.height).toContain('calc(50% - 5px)') | ||||
|     }) | ||||
|  | ||||
|     it('splits in percentages when given sizes', function() { | ||||
|         Split(['#a', '#b'], { | ||||
|             sizes: [25, 75], | ||||
|         }) | ||||
|  | ||||
|         expect(this.a.style.width).toContain('calc(25% - 5px)') | ||||
|         expect(this.b.style.width).toContain('calc(75% - 5px)') | ||||
|     }) | ||||
|  | ||||
|     it('splits in percentages when given sizes', function() { | ||||
|         Split(['#a', '#b'], { | ||||
|             sizes: [25, 75], | ||||
|         }) | ||||
|  | ||||
|         expect(this.a.style.width).toContain('calc(25% - 5px)') | ||||
|         expect(this.b.style.width).toContain('calc(75% - 5px)') | ||||
|     }) | ||||
|  | ||||
|     it('accounts for gutter size', function() { | ||||
|         Split(['#a', '#b'], { | ||||
|             gutterSize: 20, | ||||
|         }) | ||||
|  | ||||
|         expect(this.a.style.width).toContain('calc(50% - 10px)') | ||||
|         expect(this.b.style.width).toContain('calc(50% - 10px)') | ||||
|     }) | ||||
|  | ||||
|     it('accounts for gutter size with more than two elements', function() { | ||||
|         Split(['#a', '#b', '#c'], { | ||||
|             gutterSize: 20, | ||||
|         }) | ||||
|  | ||||
|         expect(calcParts(this.a.style.width).percentage).toBeCloseTo(33.33) | ||||
|         expect(calcParts(this.b.style.width).percentage).toBeCloseTo(33.33) | ||||
|         expect(calcParts(this.c.style.width).percentage).toBeCloseTo(33.33) | ||||
|  | ||||
|         expect(calcParts(this.a.style.width).pixels).toBe(10) | ||||
|         expect(calcParts(this.b.style.width).pixels).toBe(20) | ||||
|         expect(calcParts(this.c.style.width).pixels).toBe(10) | ||||
|     }) | ||||
|  | ||||
|     it('accounts for gutter size when direction is vertical', function() { | ||||
|         Split(['#a', '#b'], { | ||||
|             direction: 'vertical', | ||||
|             gutterSize: 20, | ||||
|         }) | ||||
|  | ||||
|         expect(this.a.style.height).toContain('calc(50% - 10px)') | ||||
|         expect(this.b.style.height).toContain('calc(50% - 10px)') | ||||
|     }) | ||||
|  | ||||
|     it('accounts for gutter size with more than two elements when direction is vertical', function() { | ||||
|         Split(['#a', '#b', '#c'], { | ||||
|             direction: 'vertical', | ||||
|             gutterSize: 20, | ||||
|         }) | ||||
|  | ||||
|         expect(calcParts(this.a.style.height).percentage).toBeCloseTo(33.33) | ||||
|         expect(calcParts(this.b.style.height).percentage).toBeCloseTo(33.33) | ||||
|         expect(calcParts(this.c.style.height).percentage).toBeCloseTo(33.33) | ||||
|  | ||||
|         expect(calcParts(this.a.style.height).pixels).toBe(10) | ||||
|         expect(calcParts(this.b.style.height).pixels).toBe(20) | ||||
|         expect(calcParts(this.c.style.height).pixels).toBe(10) | ||||
|     }) | ||||
|  | ||||
|     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).toContain('calc(70% - 5px)') | ||||
|         expect(this.b.style.width).toContain('calc(30% - 5px)') | ||||
|     }) | ||||
|  | ||||
|     it('collapse splits', function() { | ||||
|         var split = Split(['#a', '#b']) | ||||
|  | ||||
|         split.collapse(0) | ||||
|  | ||||
|         expect(this.a.getBoundingClientRect().width).toBeCloseTo(100, 0) | ||||
|         expect(this.b.getBoundingClientRect().width).toBeCloseTo( | ||||
|             800 - 100 - 10, | ||||
|             0, | ||||
|         ) | ||||
|  | ||||
|         split.collapse(1) | ||||
|  | ||||
|         expect(this.a.getBoundingClientRect().width).toBeCloseTo( | ||||
|             800 - 100 - 10, | ||||
|             0, | ||||
|         ) | ||||
|         expect(this.b.getBoundingClientRect().width).toBeCloseTo(100, 0) | ||||
|     }) | ||||
|  | ||||
|     it('returns sizes', function() { | ||||
|         var split = Split(['#a', '#b']) | ||||
|         var sizes = split.getSizes() | ||||
|  | ||||
|         expect(sizes).toEqual([50, 50]) | ||||
|  | ||||
|         split.setSizes([70, 30]) | ||||
|  | ||||
|         sizes = split.getSizes() | ||||
|  | ||||
|         expect(sizes).toEqual([70, 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%') | ||||
|     }) | ||||
| }) | ||||
		Reference in New Issue
	
	Block a user