mirror of
https://github.com/unjs/unplugin.git
synced 2025-12-08 20:26:33 +00:00
* loose start for bun plugin * implement bun * support emitFile() * fix Bun cases in integration test * add bun to other test files * remove bun-types-no-globals from github * restore bun-types-no-globals from npm @^1.2 * bun does not yet support .onEnd, so for now we shouldn't fake it with brittle workarounds * add Bun in the documentation * some missing bun references in docs * support multiple plugins * use Bun namespace instead of importing module that won't necessarily exist * Bun is a cute pink color! * fix the transform hook * fix for virtual modules * tidy up * setup bun in ci * revert unplugin require path * ignore bun in test-out folders * update tests * support onEnd * remove * implement guessLoader(), bun also now supports onEnd() * don't eat errors/warnings * we dont need to outdir for bun in this test * bun writebundle test * Update to bun@1.2.22 (supports onEnd and onResolve) * use onStart() * define onStart() in mocks * onStart * ci: run vitest in Bun so we can run bun's tests * Bun error message if building outside of Bun * skip bun specific tests when not running in bun * refactor * allow only * ci: fix typecheck --------- Co-authored-by: Kevin Deng <sxzz@sxzz.moe>
52 lines
1.4 KiB
TypeScript
52 lines
1.4 KiB
TypeScript
import { createUnplugin } from 'unplugin'
|
|
import { describe, expect, it } from 'vitest'
|
|
|
|
describe.skipIf(typeof Bun === 'undefined')('bun plugin', () => {
|
|
it('should export bun plugin', () => {
|
|
const unplugin = createUnplugin(() => ({
|
|
name: 'test-plugin',
|
|
}))
|
|
|
|
expect(unplugin.bun).toBeDefined()
|
|
expect(typeof unplugin.bun).toBe('function')
|
|
})
|
|
|
|
it('should create bun plugin with correct name', () => {
|
|
const unplugin = createUnplugin(() => ({
|
|
name: 'test-plugin',
|
|
}))
|
|
|
|
const bunPlugin = unplugin.bun()
|
|
expect(bunPlugin.name).toBe('test-plugin')
|
|
expect(bunPlugin.setup).toBeDefined()
|
|
expect(typeof bunPlugin.setup).toBe('function')
|
|
})
|
|
|
|
it('should handle options correctly', () => {
|
|
interface Options {
|
|
value: string
|
|
}
|
|
|
|
const unplugin = createUnplugin<Options>(options => ({
|
|
name: 'test-plugin',
|
|
buildStart() {
|
|
expect(options.value).toBe('test')
|
|
},
|
|
}))
|
|
|
|
const bunPlugin = unplugin.bun({ value: 'test' })
|
|
expect(bunPlugin).toBeDefined()
|
|
})
|
|
|
|
it('should support multiple plugins with host name', () => {
|
|
const unplugin = createUnplugin(() => [
|
|
{ name: 'plugin-1' },
|
|
{ name: 'plugin-2' },
|
|
])
|
|
|
|
const bunPlugin = unplugin.bun()
|
|
expect(bunPlugin.name).toBe('unplugin-host:plugin-1:plugin-2')
|
|
expect(bunPlugin.setup).toBeDefined()
|
|
})
|
|
})
|