name: tests
on: [pull_request]
jobs:
  jasmine-tests:
    runs-on: ubuntu-18.04
    steps:
    - uses: actions/checkout@v2
    - name: Setup node
      uses: actions/setup-node@v2
      with:
        node-version: '10'
        check-latest: true
    - name: Cache node modules
      uses: actions/cache@v2
      env:
        cache-name: cache-node-modules
      with:
        path: ~/.npm
        key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
        restore-keys: |
          ${{ runner.os }}-build-${{ env.cache-name }}-
          ${{ runner.os }}-build-
          ${{ runner.os }}-
    - name: Install Dependencies
      run: npm install
    - name: "Build dist files"
      run: grunt build
    - name: "Transpile"
      run: grunt transpile
    - name: "Run tests"
      run: grunt jasmine

  cypress-tests:
    runs-on: ubuntu-18.04
    steps:
    - uses: actions/checkout@v2
    - name: Setup node
      uses: actions/setup-node@v2
      with:
        node-version: '10'
        check-latest: true
    - name: Cache node modules
      uses: actions/cache@v2
      env:
        cache-name: cache-node-modules
      with:
        path: ~/.npm
        key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
        restore-keys: |
          ${{ runner.os }}-build-${{ env.cache-name }}-
          ${{ runner.os }}-build-
          ${{ runner.os }}-
    - name: Install Dependencies
      run: npm install
    - name: "Build dist files"
      run: grunt build
    - name: "Transpile"
      run: grunt transpile
    - name: "Run Cypress tests"
      run: npm run start:ci & npm run cy:run:chrome
