• Jump To … +
    assert_Array.litcoffee assert_Boolean.litcoffee assert_Function.litcoffee assert_Number.litcoffee assert_Object.litcoffee assert_String.litcoffee fluentnode.coffee index.md Array.litcoffee Boolean.litcoffee Function.litcoffee Number.litcoffee Object.litcoffee String.litcoffee console.litcoffee crypto.litcoffee fs.litcoffee http.litcoffee path.litcoffee process.litcoffee encoding.litcoffee globals.litcoffee assert_Array.test.coffee assert_Boolean.test.coffee assert_Function.test.coffee assert_Number.test.coffee assert_Object.test.coffee assert_String.test.coffee fluentnode.test.coffee Array.test.coffee Boolean.test.coffee Function.test.coffee Number.test.coffee Object.test.coffee String.test.coffee console.test.coffee crypto.test.coffee fs.test.coffee http.test.coffee path.test.coffee process.test.coffee encoding.test.coffee globals.test.coffee
  • process.test.coffee

  • ¶
    require('../../src/fluentnode')
    os = require('os')
    
    describe '| node-native | process',->
    
        it 'start_Process', ->
          ''.start_Process.assert_Is_Function()
          if os.platform() is 'win32'
            'cmd'.start_Process('/c','echo').assert_Is_Object()
                                            .constructor.name.assert_Is('ChildProcess')
            'cmd'.start_Process('/c',).pid.assert_Is_Number()
          else
            'echo'.start_Process().assert_Is_Object()
                                  .constructor.name.assert_Is('ChildProcess')
            'echo'.start_Process().pid.assert_Is_Number()
    
    
        if os.platform() is 'win32'  # test below Fail in Appveyor
          return
    
        it 'start_Process_Redirect_Console', (done)->
          tmp_file       = '_tmp_File_'.add_5_Letters().touch()
          second_Message = ' this is the 2nd message '.add_5_Letters()
          original_log = console.log
          log_Messages = []
          console.log  = (logMsg)-> log_Messages.push(logMsg)
    
          childProcess = 'ls'.start_Process_Redirect_Console('.')
          childProcess.on 'exit', ->
            console.log second_Message
            log_Messages.first() .assert_Contains(tmp_file.file_Name())
            log_Messages.second().assert_Is second_Message
            console.log = original_log
            tmp_file.assert_File_Deleted()
            done()
  • ¶

    Fails in Appveyor

        it 'String::start_Process_Capture_Console_Out', (done)->
    
            runTest = (testData,next)->
                name          = testData.process_Name
                parameter     = testData.process_Parameter
                expected_Data = testData.expected_Data
                name.start_Process_Capture_Console_Out parameter, (data)->
                    data.assert_Is(expected_Data)
                    next()
    
            runTests = (testsData, next)->
                if testsData.empty()
                    next()
                else
                    runTest testsData.pop(), ()-> runTests(testsData, next)
    
            testsData = [
                            {process_Name: 'echo' , process_Parameter: 'hello'       , expected_Data:'hello\n' }
                            {process_Name: 'echo' , process_Parameter: ['hello','me'], expected_Data:'hello,me\n' }
                            {process_Name: 'echo' , process_Parameter: []            , expected_Data:'\n' }
                            {process_Name: 'echo' , process_Parameter: [null]        , expected_Data:'\n' }
                            {process_Name: 'git'  , process_Parameter: ['xyz'       ], expected_Data:'git: \'xyz\' is not a git command. See \'git --help\'.\n' }
  • ¶

    travis and cloud9 sometimes failed on a couple of these (not in an consistent/repeatable way)

                            #{process_Name: 'ls'   , process_Parameter: '.'           , expected_Data:'Cakefile\nLICENSE\nREADME.md\ndocs\npackage.json\nsrc\ntest\n' }
                            #{process_Name: 'ls'   , process_Parameter: null          , expected_Data:'ls: null: No such file or directory\n' }
                        ]
    
            runTests(testsData, done)