52 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			52 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|   | /* global expect*/ | ||
|  | const isArray = require('lodash/isArray'); | ||
|  | const find = require('unist-util-find'); | ||
|  | const { root } = require('mdast-builder'); | ||
|  | 
 | ||
|  | const getAllBetween = require('./between-headings'); | ||
|  | const simpleAst = require('../../__fixtures__/ast-simple.json'); | ||
|  | const extraHeadingAst = require('../../__fixtures__/ast-extra-heading.json'); | ||
|  | 
 | ||
|  | describe('between-headings', () => { | ||
|  |   it('should return an array', () => { | ||
|  |     expect.assertions(1); | ||
|  |     const actual = getAllBetween(simpleAst, '--hints--'); | ||
|  |     expect(isArray(actual)).toBe(true); | ||
|  |   }); | ||
|  | 
 | ||
|  |   it('should return an empty array if the marker is not present', () => { | ||
|  |     expect.assertions(2); | ||
|  |     const actual = getAllBetween(simpleAst, '--not-a-marker--'); | ||
|  |     expect(isArray(actual)).toBe(true); | ||
|  |     expect(actual.length).toBe(0); | ||
|  |   }); | ||
|  | 
 | ||
|  |   it('should include any headings without markers', () => { | ||
|  |     expect.assertions(1); | ||
|  |     const actual = getAllBetween(extraHeadingAst, '--description--'); | ||
|  |     expect( | ||
|  |       find(root(actual), { | ||
|  |         value: 'this should still be inside --description--' | ||
|  |       }) | ||
|  |     ).not.toBeUndefined(); | ||
|  |   }); | ||
|  | 
 | ||
|  |   it('should include the rest of the AST if there is no end marker', () => { | ||
|  |     expect.assertions(2); | ||
|  |     const actual = getAllBetween(extraHeadingAst, '--solutions--'); | ||
|  |     expect(actual.length > 0).toBe(true); | ||
|  |     expect( | ||
|  |       find(root(actual), { value: 'body {\n  background: white;\n}' }) | ||
|  |     ).not.toBeUndefined(); | ||
|  |   }); | ||
|  | 
 | ||
|  |   it('should match the hints snapshot', () => { | ||
|  |     const actual = getAllBetween(simpleAst, '--hints--'); | ||
|  |     expect(actual).toMatchSnapshot(); | ||
|  |   }); | ||
|  |   it('should match the instructions snapshot', () => { | ||
|  |     const actual = getAllBetween(simpleAst, '--instructions--'); | ||
|  |     expect(actual).toMatchSnapshot(); | ||
|  |   }); | ||
|  | }); |