   Math.floor(Math.random()*(max-min+1)+min)
 
 printLogs = (acho) ->
-  acho.error 'error message'
-  acho.warn 'warn message'
-  acho.success 'success message'
-  acho.info 'info message'
-  acho.verbose 'verbose message'
-  acho.debug 'debug message'
-  acho.silly 'silly message'
+  levels = Object.keys(acho.types)
+  levels.forEach (level) -> acho[level](level + ' message')
 
 createFakeTransport = ->
   store = []

      @acho.transport.store.length.should.be.equal 1
      @acho.messages.error.length.should.be.equal 1

      expected = '\u001b[31m[error] » \u001b[39m\u001b[90mhello world\u001b[39m'
      @acho.transport.store[0].should.be.equal expected
      @acho.messages.error[0].should.be.equal 'hello world'


      @acho.print()

      @acho.transport.store.length.should.be.equal 1
      expected = '\u001b[31m\u001b[1m[error] » \u001b[22m\u001b[39m \u001b[90mhello\u001b[39m \u001b[90mworld\u001b[39m'
      @acho.transport.store[0].should.be.equal expected

    it 'no ouptut messages out of the level',  ->
      level = @acho.level
      @acho.level = 'fatal'
      @acho.error 'test of message'
      @acho.transport.store.length.should.be.equal 0

  describe 'customization', ->
    it 'default skin', ->
      instance = Acho()
      printLogs instance
      (instance.keyword?).should.be.false

    it 'specifying a keyword', ->
      instance = Acho color: true, keyword: 'acho'
      printLogs instance
      instance.keyword.should.be.equal 'acho'

    it 'specifying a special "symbol" keyword', ->
      instance = Acho color: true, keyword: 'symbol'
      printLogs instance
      instance.keyword.should.be.equal 'symbol'

    it 'enabling diff between logs', (done) ->
      acho = Acho color: true, diff: true, timestamp: true, align: false
      printWarn = -> acho.warn 'hello world'
      printErr = -> acho.error 'oh noes!'

