Skip to content

Instantly share code, notes, and snippets.

@rwjblue
Last active March 17, 2017 19:42
Show Gist options
  • Save rwjblue/0654b02764a3cda318c7d84650d92c6b to your computer and use it in GitHub Desktop.
Save rwjblue/0654b02764a3cda318c7d84650d92c6b to your computer and use it in GitHub Desktop.

Based on creating data for coverage.json documented here.

  • "statement" is each non blank line in the source template
  • "branch" is a block

Prototyping AST transform: here

<div>
{{someText}}
{{#if foo}}
<button>Do it!</button>
{{/if}}
</div>
{{#foo-bar}}
{{render-something-here}}
{{/foo-bar}}
{{#ember-cli-code-coverage
'{
"path": "app/templates/application.hbs",
"s": {
"1": 0,
"2": 0,
"3": 0,
"4": 0,
"5": 0,
"6": 0
},
"b": {
"1": [0, 0],
"2": [0, 0]
},
"f": { },
"fnMap": { },
"statementMap": {
"1": { "start": { "line": 1, "column": 0 }, "end": { "line": 6, "column": 7 } },
"2": { "start": { "line": 2, "column": 2 }, "end": { "line": 2, "column": 14 } },
"3": { "start": { "line": 3, "column": 2 }, "end": { "line": 5, "column": 9 } },
"4": { "start": { "line": 4, "column": 4 }, "end": { "line": 4, "column": 27 } },
"5": { "start": { "line": 7, "column": 0 }, "end": { "line": 9, "column": 12 } },
"6": { "start": { "line": 8, "column": 2 }, "end": { "line": 10, "column": 27 } }
},
"branchMap": {
"1": { "line": 3, "type": "if", "locations": [{ "start": { "line": 3, "column": 0 }, "end": { "line": 3, "column": 0 } }, { "start": { "line": 3, "column": 0 }, "end": { "line": 3, "column": 0 } }] },
"2": { "line": 7, "type": "if", "locations": [{ "start": { "line": 7, "column": 0 }, "end": { "line": 7, "column": 0 } }, { "start": { "line": 7, "column": 0 }, "end": { "line": 7, "column": 0 } }] }
},
"code": [
"<div>",
" {{someText}}",
" {{#if foo}}",
" <button>Do it!</button>",
" {{/if}}",
"</div>",
"{{#foo-bar}}",
" {{render-something-here}}",
"{{/foo-bar}}"
]
}' as |emberCLICodeCoverage|}}
{{ember-cli-code-coverage-incr emberCLICodeCoverage statement=1}}<div>
{{ember-cli-code-coverage-incr emberCLICodeCoverage statement=2}} {{someText}}
{{ember-cli-code-coverage-incr emberCLICodeCoverage statement=3}} {{#if foo}}
{{ember-cli-code-coverage-incr emberCLICodeCoverage branch=1 condition=0}}
{{ember-cli-code-coverage-incr emberCLICodeCoverage statement=4}} <button>Do it!</button>
{{/if}}
</div>
{{ember-cli-code-coverage-incr emberCLICodeCoverage statement=5}}{{#foo-bar}}
{{ember-cli-code-coverage-incr emberCLICodeCoverage branch=2 condition=0 }}
{{ember-cli-code-coverage-incr emberCLICodeCoverage statement=6}} {{render-something-here}}
{{/foo-bar}}
{{/ember-cli-code-coverage}}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment