Add Test Action (#4)

* Don't apply "data" on GET Requests
* Add Test Workflow
* Add Debug output for Instance Config and Request Data
This commit is contained in:
Frank Jogeleit 2020-04-21 14:17:51 +02:00 committed by GitHub
commit f7cd714b2c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 60 additions and 8 deletions

32
.github/workflows/test.yml vendored Normal file
View file

@ -0,0 +1,32 @@
name: Test
on: [push, pull_request]
jobs:
request:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
ref: ${{ github.ref }}
- name: Request Postment Echo GET
uses: ./
with:
url: 'https://postman-echo.com/get'
method: 'GET'
- name: Request Postment Echo POST
uses: ./
with:
url: 'https://postman-echo.com/post'
method: 'POST'
data: '{ "key": "value" }'
- name: Request Postment Echo BasicAuth
uses: ./
with:
url: 'https://postman-echo.com/basic-auth'
method: 'GET'
username: 'postman'
password: 'password'

View file

@ -32,3 +32,11 @@ jobs:
### Output ### Output
- `response` Request Response as JSON String - `response` Request Response as JSON String
### Debug Informations
Enable Debug mode to get informations about
- Instance Configuration (Url / Timeout / Headers)
- Request Data (Body / Auth / Method)

14
dist/index.js vendored
View file

@ -2597,6 +2597,9 @@ module.exports = function httpAdapter(config) {
const core = __webpack_require__(470); const core = __webpack_require__(470);
const axios = __webpack_require__(53); const axios = __webpack_require__(53);
const METHOD_GET = 'GET'
const METHOD_POST = 'POST'
let auth = undefined let auth = undefined
let customHeaders = {} let customHeaders = {}
@ -2629,19 +2632,22 @@ const instanceConfig = {
headers: { ...headers, ...customHeaders } headers: { ...headers, ...customHeaders }
} }
core.debug(JSON.stringify(instanceConfig)) core.debug('Instance Configuration: ' + JSON.stringify(instanceConfig))
const instance = axios.create(instanceConfig); const instance = axios.create(instanceConfig);
(async() => { (async() => {
try { try {
const method = core.getInput('method') || METHOD_POST;
const data = method === METHOD_GET ? undefined : JSON.parse(core.getInput('data') || '{}')
const requestData = { const requestData = {
auth, auth,
method: core.getInput('method') || 'POST', method,
data: JSON.parse(core.getInput('data') || '{}') data
} }
core.debug(JSON.stringify(requestData)) core.debug('Request Data: ' + JSON.stringify(requestData))
const response = await instance.request(requestData) const response = await instance.request(requestData)

View file

@ -1,6 +1,9 @@
const core = require("@actions/core"); const core = require("@actions/core");
const axios = require("axios"); const axios = require("axios");
const METHOD_GET = 'GET'
const METHOD_POST = 'POST'
let auth = undefined let auth = undefined
let customHeaders = {} let customHeaders = {}
@ -33,19 +36,22 @@ const instanceConfig = {
headers: { ...headers, ...customHeaders } headers: { ...headers, ...customHeaders }
} }
core.debug(JSON.stringify(instanceConfig)) core.debug('Instance Configuration: ' + JSON.stringify(instanceConfig))
const instance = axios.create(instanceConfig); const instance = axios.create(instanceConfig);
(async() => { (async() => {
try { try {
const method = core.getInput('method') || METHOD_POST;
const data = method === METHOD_GET ? undefined : JSON.parse(core.getInput('data') || '{}')
const requestData = { const requestData = {
auth, auth,
method: core.getInput('method') || 'POST', method,
data: JSON.parse(core.getInput('data') || '{}') data
} }
core.debug(JSON.stringify(requestData)) core.debug('Request Data: ' + JSON.stringify(requestData))
const response = await instance.request(requestData) const response = await instance.request(requestData)