67 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			67 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								/* global describe it expect */
							 | 
						||
| 
								 | 
							
								const cloneDeep = require('lodash/cloneDeep');
							 | 
						||
| 
								 | 
							
								const { selectAll } = require('unist-util-select');
							 | 
						||
| 
								 | 
							
								const find = require('unist-util-find');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const restoreDirectives = require('./restore-directives');
							 | 
						||
| 
								 | 
							
								const directivesOriginalAST = require('../__fixtures__/ast-directives.json');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								describe('restore-directives', () => {
							 | 
						||
| 
								 | 
							
								  let directivesAST;
							 | 
						||
| 
								 | 
							
								  beforeEach(() => {
							 | 
						||
| 
								 | 
							
								    directivesAST = cloneDeep(directivesOriginalAST);
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  it('should return a function', () => {
							 | 
						||
| 
								 | 
							
								    expect.assertions(1);
							 | 
						||
| 
								 | 
							
								    const plugin = restoreDirectives();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    expect(typeof plugin).toEqual('function');
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								  // TODO: if remark-directive starts processing containers, add them to the
							 | 
						||
| 
								 | 
							
								  // tests
							 | 
						||
| 
								 | 
							
								  it('should remove any directives in the AST', () => {
							 | 
						||
| 
								 | 
							
								    expect.assertions(4);
							 | 
						||
| 
								 | 
							
								    const plugin = restoreDirectives();
							 | 
						||
| 
								 | 
							
								    let leaves = selectAll('leafDirective', directivesAST);
							 | 
						||
| 
								 | 
							
								    let text = selectAll('textDirective', directivesAST);
							 | 
						||
| 
								 | 
							
								    expect(leaves.length).toBe(2);
							 | 
						||
| 
								 | 
							
								    expect(text.length).toBe(2);
							 | 
						||
| 
								 | 
							
								    plugin(directivesAST);
							 | 
						||
| 
								 | 
							
								    leaves = selectAll('leafDirective', directivesAST);
							 | 
						||
| 
								 | 
							
								    text = selectAll('textDirective', directivesAST);
							 | 
						||
| 
								 | 
							
								    expect(leaves.length).toBe(0);
							 | 
						||
| 
								 | 
							
								    expect(text.length).toBe(0);
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  it('should put the original text into the AST', () => {
							 | 
						||
| 
								 | 
							
								    expect.assertions(4);
							 | 
						||
| 
								 | 
							
								    const plugin = restoreDirectives();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    let nodeWithImport = find(
							 | 
						||
| 
								 | 
							
								      directivesAST,
							 | 
						||
| 
								 | 
							
								      node => node.value && node.value.includes('::import')
							 | 
						||
| 
								 | 
							
								    );
							 | 
						||
| 
								 | 
							
								    let nodeWithRoot = find(
							 | 
						||
| 
								 | 
							
								      directivesAST,
							 | 
						||
| 
								 | 
							
								      node => node.value && node.value.includes(':root')
							 | 
						||
| 
								 | 
							
								    );
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    expect(nodeWithImport).not.toBeTruthy();
							 | 
						||
| 
								 | 
							
								    expect(nodeWithRoot).not.toBeTruthy();
							 | 
						||
| 
								 | 
							
								    plugin(directivesAST);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    nodeWithImport = find(
							 | 
						||
| 
								 | 
							
								      directivesAST,
							 | 
						||
| 
								 | 
							
								      node => node.value && node.value.includes('::import')
							 | 
						||
| 
								 | 
							
								    );
							 | 
						||
| 
								 | 
							
								    nodeWithRoot = find(
							 | 
						||
| 
								 | 
							
								      directivesAST,
							 | 
						||
| 
								 | 
							
								      node => node.value && node.value.includes(':root')
							 | 
						||
| 
								 | 
							
								    );
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    expect(nodeWithImport).toBeTruthy();
							 | 
						||
| 
								 | 
							
								    expect(nodeWithRoot).toBeTruthy();
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								});
							 |