pulsar/spec/clipboard-spec.js
2021-09-29 13:41:03 +03:00

42 lines
1.4 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 });
});
}
});
});