Skip to content

Commit

Permalink
Add dedicated Actions-outputs module
Browse files Browse the repository at this point in the history
  • Loading branch information
James M. Greene authored and James M. Greene committed Aug 3, 2022
1 parent bb42d7b commit b2561d3
Show file tree
Hide file tree
Showing 2 changed files with 72 additions and 0 deletions.
10 changes: 10 additions & 0 deletions src/output-pages-base-url.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
const core = require('@actions/core')

function outputPagesBaseUrl(siteUrl) {
core.setOutput('base_url', siteUrl.href)
core.setOutput('origin', siteUrl.origin)
core.setOutput('host', siteUrl.host)
core.setOutput('base_path', siteUrl.pathname)
}

module.exports = outputPagesBaseUrl
62 changes: 62 additions & 0 deletions src/output-pages-base-url.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
const core = require('@actions/core')

const outputPagesBaseUrl = require('./output-pages-base-url')

describe('outputPagesBaseUrl', () => {
beforeEach(() => {
jest.restoreAllMocks()

jest.spyOn(core, 'setOutput').mockImplementation((key, value) => {
key, value
})
jest.spyOn(core, 'setFailed').mockImplementation(param => param)

// Mock error/warning/info/debug
jest.spyOn(core, 'error').mockImplementation(jest.fn())
jest.spyOn(core, 'warning').mockImplementation(jest.fn())
jest.spyOn(core, 'info').mockImplementation(jest.fn())
jest.spyOn(core, 'debug').mockImplementation(jest.fn())
})

it('gets expected outputs for profile site', async () => {
const baseUrl = 'https://octocat.github.io/'

outputPagesBaseUrl(new URL(baseUrl))

expect(core.setOutput).toHaveBeenCalledWith('base_url', baseUrl)
expect(core.setOutput).toHaveBeenCalledWith(
'origin',
'https://octocat.github.io'
)
expect(core.setOutput).toHaveBeenCalledWith('host', 'octocat.github.io')
expect(core.setOutput).toHaveBeenCalledWith('base_path', '/')
})

it('gets expected outputs for project site', async () => {
const baseUrl = 'https://octocat.github.io/my-repo/'

outputPagesBaseUrl(new URL(baseUrl))

expect(core.setOutput).toHaveBeenCalledWith('base_url', baseUrl)
expect(core.setOutput).toHaveBeenCalledWith(
'origin',
'https://octocat.github.io'
)
expect(core.setOutput).toHaveBeenCalledWith('host', 'octocat.github.io')
expect(core.setOutput).toHaveBeenCalledWith('base_path', '/my-repo/')
})

it('gets expected outputs for site with custom domain name', async () => {
const baseUrl = 'https://www.example.com/'

outputPagesBaseUrl(new URL(baseUrl))

expect(core.setOutput).toHaveBeenCalledWith('base_url', baseUrl)
expect(core.setOutput).toHaveBeenCalledWith(
'origin',
'https://www.example.com'
)
expect(core.setOutput).toHaveBeenCalledWith('host', 'www.example.com')
expect(core.setOutput).toHaveBeenCalledWith('base_path', '/')
})
})

0 comments on commit b2561d3

Please sign in to comment.