import 'mocha' ; import { expect } from 'chai' ; import { BatchBuilder } from '@/application/Context/State/Code/Generation/Languages/BatchBuilder' ; describe ( 'BatchBuilder' , ( ) => { class BatchBuilderRevealer extends BatchBuilder { public getCommentDelimiter ( ) { return super . getCommentDelimiter ( ) ; } public writeStandardOut ( text ) { return super . writeStandardOut ( text ) ; } } describe ( 'getCommentDelimiter' , ( ) => { it ( 'returns expected' , ( ) => { const expected = '::' ; const sut = new BatchBuilderRevealer ( ) ; const actual = sut . getCommentDelimiter ( ) ; expect ( expected ) . to . equal ( actual ) ; } ) ; } ) ; describe ( 'writeStandardOut' , ( ) => { const testData = [ { name : 'plain text' , text : 'test' , expected : 'echo test' , } , { name : 'text with ampersand' , text : 'a & b' , expected : 'echo a ^& b' , } , { name : 'text with percent sign' , text : '90%' , expected : 'echo 90%%' , } , { name : 'text with multiple ampersands and percent signs' , text : 'Me&you in % ? You & me = 0%' , expected : 'echo Me^&you in %% ? You ^& me = 0%%' , } , ] ; for ( const test of testData ) { it ( test . name , ( ) => { const sut = new BatchBuilderRevealer ( ) ; const actual = sut . writeStandardOut ( test . text ) ; expect ( test . expected ) . to . equal ( actual ) ; } ) ; } } ) ; } ) ;