Setup for L0 Testcases (#8)

* Setup for L0 Testcases

* Issue Fix

* Issue Fix

* Review fix

* Review fix

* Review fix

* Review fix

* Review fix

* Review fix

* Review fix

* Review fix

* Review fix

* Review fix

* Install dependencies in all runs

* To get review on the approach of installing only dev-dep in case of releases

* Removed npm build, using just install
This commit is contained in:
rgsubh 2020-06-19 15:22:36 +05:30 committed by GitHub
parent 8405e87dd0
commit 41bde4ee53
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 117 additions and 4 deletions

80
.github/workflows/test.yml vendored Normal file
View File

@ -0,0 +1,80 @@
on:
pull_request:
push:
branches:
- master
- 'releases/*'
jobs:
build_test_job:
name: 'Build and test job'
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [windows-latest, ubuntu-latest, macos-latest]
steps:
- name: 'Checking out repo code'
uses: actions/checkout@v1
- name: Extract branch name
id: extract_branch
run: |
echo "##[set-output name=branchname;]$(echo ${GITHUB_REF##*/})"
- name: 'Install dependency for master'
if: github.event.pull_request.base.ref == 'master' || steps.extract_branch.outputs.branchname == 'master'
run: |
npm install
- name: 'Install dependency for releases'
if: github.event.pull_request.base.ref == 'releases/v1' || steps.extract_branch.outputs.branchname == 'releases/v1'
run: |
npm install --only=dev
- name: 'Run L0 tests'
run: |
npm run test
- name : 'Run test coverage'
if: runner.os == 'Windows'
env:
PR_NUMBER: ${{ github.event.pull_request.number }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
$coverage_result = npm run test-coverage
$start = $false;
$middle = $false;
$end = $false;
$count = 0;
foreach ($j in $coverage_result)
{
if ($j.tostring().startswith("----------"))
{
if (!$start)
{
$start = $true;
$start_index = $count
}
elseif (!$middle)
{
$middle = $true;
}
elseif (!$end)
{
$end = $true;
$end_index = $count
}
}
$count++
}
$tbl_md = $coverage_result[($start_index+1)..($end_index-1)] -join "\n"
$summary = $coverage_result[($end_index + 1)..$count] -join "\n"
$comment = $tbl_md + "\n" + $summary
$url = "https://api.github.com/repos/${env:GITHUB_REPOSITORY}/issues/${env:PR_NUMBER}/comments"
$headers = @{
"Authorization" = "token ${env:GITHUB_TOKEN}"
}
$body = "{ `"body`": `"${comment}`" }"
Invoke-RestMethod -Method POST -Uri $url -Headers $headers -Body $body

1
.gitignore vendored
View File

@ -327,3 +327,4 @@ ASALocalRun/
# MFractors (Xamarin productivity tool) working folder # MFractors (Xamarin productivity tool) working folder
.mfractor/ .mfractor/
node_modules

7
__tests__/run.test.ts Normal file
View File

@ -0,0 +1,7 @@
import { run } from '../src/login'
describe('This is a placeholder for intial test cases, to be removed', () => {
test('Dummy test case', async () => {
await expect(run()).rejects.toThrow();
})
})

18
jest.config.js Normal file
View File

@ -0,0 +1,18 @@
module.exports = {
clearMocks: true,
moduleFileExtensions: ['js', 'ts'],
testEnvironment: 'node',
testMatch: ['**/*.test.ts'],
transform: {
'^.+\\.ts$': 'ts-jest'
},
verbose: true,
coverageThreshold: {
"global": {
"branches": 0,
"functions": 40,
"lines": 22,
"statements": 22
}
}
}

View File

@ -115,4 +115,5 @@ function run() {
yield setContext(); yield setContext();
}); });
} }
exports.run = run;
run().catch(core.setFailed); run().catch(core.setFailed);

View File

@ -4,7 +4,9 @@
"private": true, "private": true,
"main": "lib/run.js", "main": "lib/run.js",
"scripts": { "scripts": {
"build": "tsc --outDir .\\lib\\ --rootDir .\\src\\" "build": "tsc --outDir .\\lib\\ --rootDir .\\src\\",
"test": "jest",
"test-coverage": "jest --coverage"
}, },
"keywords": [ "keywords": [
"actions", "actions",
@ -21,6 +23,9 @@
}, },
"devDependencies": { "devDependencies": {
"@types/node": "^12.0.4", "@types/node": "^12.0.4",
"typescript": "^3.5.2" "typescript": "3.9.2",
"jest": "^26.0.1",
"@types/jest": "^25.2.2",
"ts-jest": "^25.5.1"
} }
} }

View File

@ -100,7 +100,7 @@ async function setContext() {
} }
} }
async function run() { export async function run() {
let kubeconfig = getKubeconfig(); let kubeconfig = getKubeconfig();
const runnerTempDirectory = process.env['RUNNER_TEMP']; // Using process.env until the core libs are updated const runnerTempDirectory = process.env['RUNNER_TEMP']; // Using process.env until the core libs are updated
const kubeconfigPath = path.join(runnerTempDirectory, `kubeconfig_${Date.now()}`); const kubeconfigPath = path.join(runnerTempDirectory, `kubeconfig_${Date.now()}`);

View File

@ -4,6 +4,7 @@
"module": "commonjs" "module": "commonjs"
}, },
"exclude": [ "exclude": [
"node_modules" "node_modules",
"__tests__"
] ]
} }