@sourcegraph/extension-api-stubs
v1.6.2
Published
Stubs for the Sourcegraph extension API to unit-test Sourcegraph extensions
Downloads
591
Keywords
Readme
@sourcegraph/extension-api-stubs
⚠️ Deprecation notice
Sourcegraph extensions have been deprecated with the September 2022 Sourcegraph release. Learn more.
The repo and the docs below are kept to support older Sourcegraph versions.
Description
Stubs for the Sourcegraph extension API to unit-test Sourcegraph extensions
Install
npm install @sourcegraph/extension-api-stubs
# or
yarn add @sourcegraph/extension-api-stubs
Example
import mock from 'mock-require'
import { createStubSourcegraphAPI, createStubExtensionContext } from '@sourcegraph/extension-api-stubs'
const sourcegraph = createStubSourcegraphAPI()
// For modules importing Range/Location/Position/URI/etc
mock('sourcegraph', sourcegraph)
import * as sinon from 'sinon'
import { activate } from './extension'
describe('my extension', () => {
it('should register a hover provider', async () => {
const context = createStubExtensionContext()
await activate(context)
sinon.assert.calledOnce(sourcegraph.languages.registerHoverProvider)
const provider = sourcegraph.languages.registerHoverProvider.args[0][1]
const result = provider()
// More assertions ...
})
})
See the Sinon documentation for more info on how to use the stubs.
Build
yarn
yarn build
Test
yarn test
Release
Releases are done automatically in CI when commits are merged into master by analyzing Conventional Commit Messages.
After running yarn
, commit messages will be linted automatically when committing though a git hook.
The git hook can be circumvented for fixup commits with git's fixup!
autosquash feature, or by passing --no-verify
to git commit
.
You may have to rebase a branch before merging to ensure it has a proper commit history, or squash merge with a manually edited commit message that conforms to the convention.