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();
 | 
						|
  });
 | 
						|
});
 |