Skip to content

Instantly share code, notes, and snippets.

@underwindfall
Created March 1, 2017 09:51
Show Gist options
  • Save underwindfall/1f7edc0be076bec2c2e7d32dede20414 to your computer and use it in GitHub Desktop.
Save underwindfall/1f7edc0be076bec2c2e7d32dede20414 to your computer and use it in GitHub Desktop.
Answers of Es6katas [http://es6katas.org/]
// 4: template strings - String.raw
// To do: make all tests pass, leave the asserts unchanged!
describe('on tagged template strings you can use the `raw` property like so `s.raw`', function() {
it('the `raw` property accesses the string as it was entered', function() {
function firstChar(strings) {
return strings.raw;
}
assert.equal(firstChar`\n`, '\\n');
});
it('`raw` can access the backslash of a line-break', function() {
function firstCharEntered(strings) {
var lineBreak = strings.raw.toString()[0];
return lineBreak;
}
assert.equal(firstCharEntered`\n`, '\\');
});
describe('`String.raw` as a static function', function(){
it('concats the raw strings', function() {
var expected = '\\n';
assert.equal(String.raw`\n`, expected);
});
it('two raw-templates-string-backslashes equal two escaped backslashes', function() {
const TWO_BACKSLASHES = '\\\\';
assert.equal(String.raw`\\`, TWO_BACKSLASHES);
});
it('works on unicodes too', function() {
var smilie = '\\u{1F600}';
var actual = String.raw`\u{1F600}`;
assert.equal(actual, smilie);
});
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment