pulsar/spec/clipboard-spec.js
Winston Liu e73a454def
🎨
2021-09-29 13:41:02 +03:00

33 lines
1.3 KiB
JavaScript

describe('Clipboard', () => {
describe('write(text, metadata) and read()', () => {
it('writes and reads text to/from the native clipboard', () => {
expect(atom.clipboard.read()).toBe('initial clipboard content')
atom.clipboard.write('next')
expect(atom.clipboard.read()).toBe('next')
})
it('returns metadata if the item on the native clipboard matches the last written item', () => {
atom.clipboard.write('next', {meta: 'data'})
expect(atom.clipboard.read()).toBe('next')
expect(atom.clipboard.readWithMetadata().text).toBe('next')
expect(atom.clipboard.readWithMetadata().metadata).toEqual({meta: 'data'})
})
})
describe('line endings', () => {
let originalPlatform = process.platform
const eols = new Map([['win32', '\r\n'], ['darwin', '\n'], ['linux', '\n']])
for (let [platform, eol] of eols) {
it(`converts line endings to the OS's native line endings on ${platform}`, () => {
Object.defineProperty(process, 'platform', {value: platform})
atom.clipboard.write('next\ndone\r\n\n', {meta: 'data'})
expect(atom.clipboard.readWithMetadata()).toEqual({text: `next${eol}done${eol}${eol}`, metadata: {meta: 'data'}})
Object.defineProperty(process, 'platform', {value: originalPlatform})
})
}
})
})