mdfs v2.0.5
mdfs
Markdown with (Virtual)FileSystem it's a simple way to write many files with a single file, usefull for testcases, specially for transpilers. The main advantage of markdown it's sintax formatting for multiple languages, for example.
## file.html
՝՝՝html
<div>text</div>
՝՝՝
## file.jade
՝՝՝jade
div text
՝՝՝
## file.js
՝՝՝javascript
var e=document.createElement('div');
e.textContent = 'text';
՝՝՝
install:
$ npm install mdfs
usage:
var mdfs = require('mdfs')
api:
mdfs.parse
parses an md file in a pure javascript object with each virtual file is mapped to a file
var mdfs=require('mdfs'); var test=mdfs.parse(mdcontent);
This code will return
test = { 'file.html': '<div>text</div>' 'file.jade': 'div\n text' 'file.js': "var e=document.createElement('div');\ne.textContent = 'text';"
mdfs.search
searchs *.md files in a directory, parses each one and invoke a callback with parsed object for each one.
var mdfs=require('mdfs'); declare('My transpiler test', function(){ mdfs.search('tests/cases', function callback_function(test){ if (test.pending) xit(test.title); else { var it_fn = test.only ? it.only : it; it_fn(test.title, function(done){ var actual = my_transpile_function(test.jade); var expected = test.html; expect(actual).to.be.equal(expected); }); } }); });
This code will:
- Search all md files (*.md) in tests/cases folder
- Parse each one
- Invoke callback_function for each parsed file. The callback parameter contains parsed file return plus mdfs attribute. test parameter of search callback has refresh method
mdfs attributes:
- fullname: name of parsed file
- title: the first header on file
- only: true if exists an
**only**
line - skip: true if exists an
**skip**
line - pending: true if exists an
**pending**
line
mdfs.describe
create tests (describe/it/xit) for each *.md file on
dirname
and subfolders invoking the callback for make some transformation and return actual value witch will be compared with expected value on .md file. A second callback can be used to define to test title and the third callback can be used to compare actual and expected values.var mdfs = require('mdfs') mdfs.describe(dirname, 'EXPECTED_FILE_NAME', function transform_callback(test) { var ACTUAL = TRANSFORM_FUNCTION(test['SOURCE_FILE_NAME']); return ACTUAL } )
This code will create (bdd style) tests that invoke transform_callback function for each file. The special file name
throw
can be used for transformation failures. Seetest/sample.js
for a ES6 to ES5 transpile with using Babel.
3 years ago
5 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago