#!/bin/bash

# Check that node exists and refers to nodejs
checknodejs=$(hash node 2> /dev/null  && node --help | grep js)
if [[ $? -ne 0 ]]; then
  echo 'NodeJS (node) is not properly installed'
  echo 'Note, on Ubuntu / Debian, you may need to also install:'
  echo '$ sudo apt-get install nodejs-legacy'
  exit 1
fi

# Check that npm is installed
checknpm=$(hash npm 2> /dev/null)
if [[ $? -ne 0 ]]; then
  echo 'Node Package Manager (npm) is not properly installed'
  exit 1
fi

# Check for Chrome Canary on Ubuntu
# The default install path is sometimes google-chrome-unstable
# instead of google-chrome-canary as karma expects.
if [[ "$OSTYPE" == "linux-gnu" ]] && [[ -z "$CHROME_CANARY_BIN" ]]; then
  checkcanary=$(hash google-chrome-canary 2> /dev/null)
  if [[ $? -ne 0 ]]; then
    checkunstable=$(hash google-chrome-unstable 2> /dev/null)
    if [[ $? -ne 0 ]]; then
      echo 'Chrome Canary is not found'
      echo 'Please install and/or set CHROME_CANARY_BIN to its path'
      exit 1
    else
      export CHROME_CANARY_BIN=google-chrome-unstable
    fi
  fi
fi

npm install
npm test