fix issue #866 - upgrading to typescript 4.4.3 (#896)

* Bump typescript from 4.3.5 to 4.4.3

Bumps [typescript](https://github.com/Microsoft/TypeScript) from 4.3.5 to 4.4.3.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v4.3.5...v4.4.3)

---
updated-dependencies:
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* (fix): extract error message

* (fix): error is unknown on __tests__

* (fix): add cover

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This commit is contained in:
Lucas dos Santos Abreu 2021-10-06 19:20:55 -03:00 committed by GitHub
parent 21e2299d80
commit 460c7b8081
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 54 additions and 23 deletions

View File

@ -80,7 +80,7 @@ describe('git', () => {
try {
await init(action)
} catch (error) {
expect(error.message).toBe(
expect(error instanceof Error && error.message).toBe(
'There was an error initializing the repository: Mocked throw ❌'
)
}
@ -419,7 +419,7 @@ describe('git', () => {
try {
await deploy(action)
} catch (error) {
expect(error.message).toBe(
expect(error instanceof Error && error.message).toBe(
'The deploy step encountered an error: Mocked throw ❌'
)
}

View File

@ -133,7 +133,7 @@ describe('configureSSH', () => {
try {
await configureSSH(action)
} catch (error) {
expect(error.message).toBe(
expect(error instanceof Error && error.message).toBe(
'The ssh client configuration encountered an error: Mocked throw ❌'
)
}

View File

@ -6,7 +6,8 @@ import {
generateFolderPath,
suppressSensitiveInformation,
checkParameters,
stripProtocolFromUrl
stripProtocolFromUrl,
extractErrorMessage
} from '../src/util'
describe('util', () => {
@ -222,7 +223,7 @@ describe('util', () => {
try {
checkParameters(action)
} catch (e) {
expect(e.message).toMatch(
expect(e instanceof Error && e.message).toMatch(
'No deployment token/method was provided. You must provide the action with either a Personal Access Token or the GitHub Token secret in order to deploy. If you wish to use an ssh deploy token then you must set SSH to true.'
)
}
@ -242,7 +243,7 @@ describe('util', () => {
try {
checkParameters(action)
} catch (e) {
expect(e.message).toMatch(
expect(e instanceof Error && e.message).toMatch(
'No deployment token/method was provided. You must provide the action with either a Personal Access Token or the GitHub Token secret in order to deploy. If you wish to use an ssh deploy token then you must set SSH to true.'
)
}
@ -262,7 +263,7 @@ describe('util', () => {
try {
checkParameters(action)
} catch (e) {
expect(e.message).toMatch('Branch is required.')
expect(e instanceof Error && e.message).toMatch('Branch is required.')
}
})
@ -280,7 +281,7 @@ describe('util', () => {
try {
checkParameters(action)
} catch (e) {
expect(e.message).toMatch(
expect(e instanceof Error && e.message).toMatch(
'You must provide the action with a folder to deploy.'
)
}
@ -301,7 +302,7 @@ describe('util', () => {
action.folderPath = generateFolderPath(action)
checkParameters(action)
} catch (e) {
expect(e.message).toMatch(
expect(e instanceof Error && e.message).toMatch(
`The directory you're trying to deploy named notARealFolder doesn't exist. Please double check the path and any prerequisite build scripts and try again. ❗`
)
}
@ -327,4 +328,22 @@ describe('util', () => {
)
})
})
describe('extractErrorMessage', () => {
it('gets the message of a Error', () => {
expect(extractErrorMessage(new Error('a error message'))).toBe(
'a error message'
)
})
it('gets the message of a string', () => {
expect(extractErrorMessage('a error message')).toBe('a error message')
})
it('gets the message of a object', () => {
expect(extractErrorMessage({special: 'a error message'})).toBe(
`{"special":"a error message"}`
)
})
})
})

View File

@ -28,7 +28,7 @@ describe('generateWorktree', () => {
true
)
} catch (error) {
expect(error.message).toBe(
expect(error instanceof Error && error.message).toBe(
'There was an error creating the worktree: Mocked throw ❌'
)
}

View File

@ -52,6 +52,6 @@
"prettier": "2.4.1",
"rimraf": "3.0.2",
"ts-jest": "26.5.6",
"typescript": "4.3.5"
"typescript": "4.4.3"
}
}

View File

@ -4,7 +4,11 @@ import fs from 'fs'
import {ActionInterface, Status, TestFlag} from './constants'
import {execute} from './execute'
import {generateWorktree} from './worktree'
import {isNullOrUndefined, suppressSensitiveInformation} from './util'
import {
extractErrorMessage,
isNullOrUndefined,
suppressSensitiveInformation
} from './util'
/* Initializes git in the workspace. */
export async function init(action: ActionInterface): Promise<void | Error> {
@ -63,7 +67,7 @@ export async function init(action: ActionInterface): Promise<void | Error> {
} catch (error) {
throw new Error(
`There was an error initializing the repository: ${suppressSensitiveInformation(
error.message,
extractErrorMessage(error),
action
)} `
)
@ -208,7 +212,7 @@ export async function deploy(action: ActionInterface): Promise<Status> {
} catch (error) {
throw new Error(
`The deploy step encountered an error: ${suppressSensitiveInformation(
error.message,
extractErrorMessage(error),
action
)} `
)

View File

@ -4,6 +4,7 @@ import {deploy, init} from './git'
import {configureSSH} from './ssh'
import {
checkParameters,
extractErrorMessage,
generateFolderPath,
generateRepositoryPath,
generateTokenType
@ -52,7 +53,7 @@ export default async function run(
status = await deploy(settings)
} catch (error) {
status = Status.FAILED
setFailed(error.message)
setFailed(extractErrorMessage(error))
} finally {
info(
`${

View File

@ -3,7 +3,7 @@ import {mkdirP} from '@actions/io'
import {execFileSync, execSync} from 'child_process'
import {appendFileSync} from 'fs'
import {ActionInterface} from './constants'
import {suppressSensitiveInformation} from './util'
import {extractErrorMessage, suppressSensitiveInformation} from './util'
export async function configureSSH(action: ActionInterface): Promise<void> {
try {
@ -46,7 +46,7 @@ export async function configureSSH(action: ActionInterface): Promise<void> {
} catch (error) {
throw new Error(
`The ssh client configuration encountered an error: ${suppressSensitiveInformation(
error.message,
extractErrorMessage(error),
action
)} `
)

View File

@ -90,6 +90,13 @@ export const suppressSensitiveInformation = (
return value
}
export const extractErrorMessage = (error: unknown): string =>
error instanceof Error
? error.message
: typeof error == 'string'
? error
: JSON.stringify(error)
/** Strips the protocol from a provided URL. */
export const stripProtocolFromUrl = (url: string): string =>
url.replace(/^(?:https?:\/\/)?(?:www\.)?/i, '').split('/')[0]

View File

@ -1,7 +1,7 @@
import {info} from '@actions/core'
import {ActionInterface} from './constants'
import {execute} from './execute'
import {suppressSensitiveInformation} from './util'
import {extractErrorMessage, suppressSensitiveInformation} from './util'
export class GitCheckout {
orphan = false
@ -77,7 +77,7 @@ export async function generateWorktree(
} catch (error) {
throw new Error(
`There was an error creating the worktree: ${suppressSensitiveInformation(
error.message,
extractErrorMessage(error),
action
)} `
)

View File

@ -4538,10 +4538,10 @@ typedarray-to-buffer@^3.1.5:
dependencies:
is-typedarray "^1.0.0"
typescript@4.3.5:
version "4.3.5"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.5.tgz#4d1c37cc16e893973c45a06886b7113234f119f4"
integrity sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==
typescript@4.4.3:
version "4.4.3"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.3.tgz#bdc5407caa2b109efd4f82fe130656f977a29324"
integrity sha512-4xfscpisVgqqDfPaJo5vkd+Qd/ItkoagnHpufr+i2QCHBsNYp+G7UAoyFl8aPtx879u38wPV65rZ8qbGZijalA==
union-value@^1.0.0:
version "1.0.1"