UNPKG

ppt-template

Version:

Generate .pptx by replacing content in template.

79 lines (63 loc) 2.41 kB
var assert = require('assert'); var Slide = require('../').Slide; var Presentation = require('../').Presentation; describe('# Slide', () => { describe('- replace()', () => { let testStr = 'AA BB CC AA BB' it('回傳成功置換的結果', () => { let result = Slide.replace(testStr, 3, 'A', 'X'); assert.equal(result, 'AA BB CC XA BB'); }); it('失敗置換,回傳原字串', () => { let result = Slide.replace(testStr, 3, 'D', 'X'); assert.equal(result, 'AA BB CC AA BB'); }); }); describe('- pair()', () => { it('Build key-value pair', () => { let pair = Slide.pair('A key', 'A value'); assert.equal(pair.key, 'A key'); assert.equal(pair.value, 'A value'); }); }); describe('- clone()', () => { let testSlide = new Slide('abc', 'def'); let cloneOne = testSlide.clone(); it('複製數值相同的獨立物件', () => { assert.equal(cloneOne.rel, testSlide.rel); assert.equal(cloneOne.content, testSlide.content); }); }); describe('- fill()', () => { let content = '[title] ~~ [text] ~~ [text]'; let testSlide = new Slide('', content); it('成功代換 pair', () => { let pair = Slide.pair('[text]', 'Cat'); testSlide.fill(pair); assert.equal(testSlide.content, '[title] ~~ Cat ~~ Cat'); }); it('處理 XML Entities', () => { let pair = Slide.pair('[title]', '&'); testSlide.fill(pair); assert.equal(testSlide.content, '& ~~ Cat ~~ Cat'); }); it('Pair Value Error', () => { assert.throws(() => { let pair = { key: 'k' }; testSlide.fill(pair); }, Error); }); }); describe('- fillAll()', () => { let content = '[title] ~~ [text] ~~ [text]'; let testSlide = new Slide('', content); let pairs = [ Slide.pair('[title]', 'Hello'), Slide.pair('[text]', 'Cat') ]; it('成功代換所有 pair', () => { testSlide.fillAll(pairs); assert.equal(testSlide.content, 'Hello ~~ Cat ~~ Cat'); }); }); });