| [81bc7da] | 1 | var test = require('tape')
|
|---|
| 2 | var Expand = require('./')
|
|---|
| 3 |
|
|---|
| 4 | test('default expands {} placeholders', function (t) {
|
|---|
| 5 | var expand = Expand()
|
|---|
| 6 | t.equal(typeof expand, 'function', 'is a function')
|
|---|
| 7 | t.equal(expand('{foo}/{bar}', {
|
|---|
| 8 | foo: 'BAR', bar: 'FOO'
|
|---|
| 9 | }), 'BAR/FOO')
|
|---|
| 10 | t.equal(expand('{foo}{foo}{foo}', {
|
|---|
| 11 | foo: 'FOO'
|
|---|
| 12 | }), 'FOOFOOFOO', 'expands one placeholder many times')
|
|---|
| 13 | t.end()
|
|---|
| 14 | })
|
|---|
| 15 |
|
|---|
| 16 | test('support for custom separators', function (t) {
|
|---|
| 17 | var expand = Expand({ sep: '[]' })
|
|---|
| 18 | t.equal(expand('[foo]/[bar]', {
|
|---|
| 19 | foo: 'BAR', bar: 'FOO'
|
|---|
| 20 | }), 'BAR/FOO')
|
|---|
| 21 | t.equal(expand('[foo][foo][foo]', {
|
|---|
| 22 | foo: 'FOO'
|
|---|
| 23 | }), 'FOOFOOFOO', 'expands one placeholder many times')
|
|---|
| 24 | t.end()
|
|---|
| 25 | })
|
|---|
| 26 |
|
|---|
| 27 | test('support for longer custom separators', function (t) {
|
|---|
| 28 | var expand = Expand({ sep: '[[]]' })
|
|---|
| 29 | t.equal(expand('[[foo]]/[[bar]]', {
|
|---|
| 30 | foo: 'BAR', bar: 'FOO'
|
|---|
| 31 | }), 'BAR/FOO')
|
|---|
| 32 | t.equal(expand('[[foo]][[foo]][[foo]]', {
|
|---|
| 33 | foo: 'FOO'
|
|---|
| 34 | }), 'FOOFOOFOO', 'expands one placeholder many times')
|
|---|
| 35 | t.end()
|
|---|
| 36 | })
|
|---|
| 37 |
|
|---|
| 38 | test('whitespace-insensitive', function (t) {
|
|---|
| 39 | var expand = Expand({ sep: '[]' })
|
|---|
| 40 | t.equal(expand('[ foo ]/[ bar ]', {
|
|---|
| 41 | foo: 'BAR', bar: 'FOO'
|
|---|
| 42 | }), 'BAR/FOO')
|
|---|
| 43 | t.equal(expand('[ foo ][ foo ][ foo]', {
|
|---|
| 44 | foo: 'FOO'
|
|---|
| 45 | }), 'FOOFOOFOO', 'expands one placeholder many times')
|
|---|
| 46 | t.end()
|
|---|
| 47 | })
|
|---|
| 48 |
|
|---|
| 49 | test('dollar escape', function (t) {
|
|---|
| 50 | var expand = Expand()
|
|---|
| 51 | t.equal(expand('before {foo} after', {
|
|---|
| 52 | foo: '$'
|
|---|
| 53 | }), 'before $ after')
|
|---|
| 54 | t.equal(expand('before {foo} after', {
|
|---|
| 55 | foo: '$&'
|
|---|
| 56 | }), 'before $& after')
|
|---|
| 57 | t.equal(expand('before {foo} after', {
|
|---|
| 58 | foo: '$`'
|
|---|
| 59 | }), 'before $` after')
|
|---|
| 60 | t.equal(expand('before {foo} after', {
|
|---|
| 61 | foo: '$\''
|
|---|
| 62 | }), 'before $\' after')
|
|---|
| 63 | t.equal(expand('before {foo} after', {
|
|---|
| 64 | foo: '$0'
|
|---|
| 65 | }), 'before $0 after')
|
|---|
| 66 | t.end()
|
|---|
| 67 | })
|
|---|