mirror of
https://github.com/pulsar-edit/pulsar.git
synced 2024-09-11 11:15:24 +03:00
231 lines
8.0 KiB
JavaScript
231 lines
8.0 KiB
JavaScript
const path = require('path');
|
|
const fs = require('fs-plus');
|
|
const temp = require('temp').track();
|
|
const CommandInstaller = require('../src/command-installer');
|
|
|
|
// describe('CommandInstaller on #darwin', () => {
|
|
// let installer, resourcesPath, installationPath, atomBinPath, apmBinPath;
|
|
//
|
|
// beforeEach(() => {
|
|
// installationPath = temp.mkdirSync('atom-bin');
|
|
//
|
|
// resourcesPath = temp.mkdirSync('atom-app');
|
|
// atomBinPath = path.join(resourcesPath, 'app', 'atom.sh');
|
|
// apmBinPath = path.join(
|
|
// resourcesPath,
|
|
// 'app',
|
|
// 'apm',
|
|
// 'node_modules',
|
|
// '.bin',
|
|
// 'apm'
|
|
// );
|
|
// fs.writeFileSync(atomBinPath, '');
|
|
// fs.writeFileSync(apmBinPath, '');
|
|
// fs.chmodSync(atomBinPath, '755');
|
|
// fs.chmodSync(apmBinPath, '755');
|
|
//
|
|
// spyOn(CommandInstaller.prototype, 'getResourcesDirectory').andReturn(
|
|
// resourcesPath
|
|
// );
|
|
// spyOn(CommandInstaller.prototype, 'getInstallDirectory').andReturn(
|
|
// installationPath
|
|
// );
|
|
// });
|
|
//
|
|
// afterEach(() => {
|
|
// try {
|
|
// temp.cleanupSync();
|
|
// } catch (error) {}
|
|
// });
|
|
//
|
|
// it('shows an error dialog when installing commands interactively fails', () => {
|
|
// const appDelegate = jasmine.createSpyObj('appDelegate', ['confirm']);
|
|
// installer = new CommandInstaller(appDelegate);
|
|
// installer.initialize('2.0.2');
|
|
// spyOn(installer, 'installAtomCommand').andCallFake((__, callback) =>
|
|
// callback(new Error('an error'))
|
|
// );
|
|
//
|
|
// installer.installShellCommandsInteractively();
|
|
//
|
|
// expect(appDelegate.confirm.mostRecentCall.args[0]).toEqual({
|
|
// message: 'Failed to install shell commands',
|
|
// detail: 'an error'
|
|
// });
|
|
//
|
|
// appDelegate.confirm.reset();
|
|
// installer.installAtomCommand.andCallFake((__, callback) => callback());
|
|
// spyOn(installer, 'installApmCommand').andCallFake((__, callback) =>
|
|
// callback(new Error('another error'))
|
|
// );
|
|
//
|
|
// installer.installShellCommandsInteractively();
|
|
//
|
|
// expect(appDelegate.confirm.mostRecentCall.args[0]).toEqual({
|
|
// message: 'Failed to install shell commands',
|
|
// detail: 'another error'
|
|
// });
|
|
// });
|
|
//
|
|
// it('shows a success dialog when installing commands interactively succeeds', () => {
|
|
// const appDelegate = jasmine.createSpyObj('appDelegate', ['confirm']);
|
|
// installer = new CommandInstaller(appDelegate);
|
|
// installer.initialize('2.0.2');
|
|
// spyOn(installer, 'installAtomCommand').andCallFake((__, callback) =>
|
|
// callback(undefined, 'atom')
|
|
// );
|
|
// spyOn(installer, 'installApmCommand').andCallFake((__, callback) =>
|
|
// callback(undefined, 'apm')
|
|
// );
|
|
//
|
|
// installer.installShellCommandsInteractively();
|
|
//
|
|
// expect(appDelegate.confirm.mostRecentCall.args[0]).toEqual({
|
|
// message: 'Commands installed.',
|
|
// detail: 'The shell commands `atom` and `apm` are installed.'
|
|
// });
|
|
// });
|
|
//
|
|
// describe('when installing command line tools for Pulsar', () => {
|
|
// beforeEach(() => {
|
|
// installer = new CommandInstaller();
|
|
// installer.initialize('2.0.2');
|
|
// });
|
|
//
|
|
// /**
|
|
// * TODO: FAILING TEST - This test fails with the following output: (macos only)
|
|
// * timeout: timed out after 120000 msec waiting for condition
|
|
// */
|
|
// it("symlinks the atom command as 'pulsar'", () => {
|
|
// const installedAtomPath = path.join(installationPath, 'pulsar');
|
|
// expect(fs.isFileSync(installedAtomPath)).toBeFalsy();
|
|
//
|
|
// waitsFor(done => {
|
|
// installer.installAtomCommand(false, error => {
|
|
// expect(error).toBeNull();
|
|
// expect(fs.realpathSync(installedAtomPath)).toBe(
|
|
// fs.realpathSync(atomBinPath)
|
|
// );
|
|
// expect(fs.isExecutableSync(installedAtomPath)).toBe(true);
|
|
// expect(fs.isFileSync(path.join(installationPath, 'pulsar'))).toBe(
|
|
// false
|
|
// );
|
|
// done();
|
|
// });
|
|
// });
|
|
// });
|
|
//
|
|
// it("symlinks the package command as 'ppm'", () => {
|
|
// const installedPpmPath = path.join(installationPath, 'ppm');
|
|
// expect(fs.isFileSync(installedPpmPath)).toBeFalsy();
|
|
//
|
|
// waitsFor(done => {
|
|
// installer.installApmCommand(false, error => {
|
|
// expect(error).toBeNull();
|
|
// expect(fs.realpathSync(installedPpmPath)).toBe(
|
|
// fs.realpathSync(apmBinPath)
|
|
// );
|
|
// expect(fs.isExecutableSync(installedPpmPath)).toBeTruthy();
|
|
// done();
|
|
// });
|
|
// });
|
|
// });
|
|
// });
|
|
//
|
|
// describe('when using a beta version of atom', () => {
|
|
// beforeEach(() => {
|
|
// installer = new CommandInstaller();
|
|
// installer.initialize('2.2.0-beta.0');
|
|
// });
|
|
//
|
|
// /**
|
|
// * TODO: FAILING TEST - This test fails with the following output: (macos only)
|
|
// * timeout: timed out after 120000 msec waiting for condition
|
|
// */
|
|
// xit("symlinks the atom command as 'atom-beta'", () => {
|
|
// const installedAtomPath = path.join(installationPath, 'atom-beta');
|
|
// expect(fs.isFileSync(installedAtomPath)).toBeFalsy();
|
|
//
|
|
// waitsFor(done => {
|
|
// installer.installAtomCommand(false, error => {
|
|
// expect(error).toBeNull();
|
|
// expect(fs.realpathSync(installedAtomPath)).toBe(
|
|
// fs.realpathSync(atomBinPath)
|
|
// );
|
|
// expect(fs.isExecutableSync(installedAtomPath)).toBe(true);
|
|
// expect(fs.isFileSync(path.join(installationPath, 'atom'))).toBe(
|
|
// false
|
|
// );
|
|
// done();
|
|
// });
|
|
// });
|
|
// });
|
|
//
|
|
// it("symlinks the apm command as 'apm-beta'", () => {
|
|
// const installedApmPath = path.join(installationPath, 'apm-beta');
|
|
// expect(fs.isFileSync(installedApmPath)).toBeFalsy();
|
|
//
|
|
// waitsFor(done => {
|
|
// installer.installApmCommand(false, error => {
|
|
// expect(error).toBeNull();
|
|
// expect(fs.realpathSync(installedApmPath)).toBe(
|
|
// fs.realpathSync(apmBinPath)
|
|
// );
|
|
// expect(fs.isExecutableSync(installedApmPath)).toBeTruthy();
|
|
// expect(fs.isFileSync(path.join(installationPath, 'apm'))).toBe(false);
|
|
// done();
|
|
// });
|
|
// });
|
|
// });
|
|
// });
|
|
//
|
|
// describe('when using a nightly version of atom', () => {
|
|
// beforeEach(() => {
|
|
// installer = new CommandInstaller();
|
|
// installer.initialize('2.2.0-nightly0');
|
|
// });
|
|
//
|
|
// /**
|
|
// * TODO: FAILING TEST - This test fails with the following output: (macos only)
|
|
// * timeout: timed out after 120000 msec waiting for condition
|
|
// */
|
|
// xit("symlinks the atom command as 'atom-nightly'", () => {
|
|
// const installedAtomPath = path.join(installationPath, 'atom-nightly');
|
|
// expect(fs.isFileSync(installedAtomPath)).toBeFalsy();
|
|
//
|
|
// waitsFor(done => {
|
|
// installer.installAtomCommand(false, error => {
|
|
// expect(error).toBeNull();
|
|
// expect(fs.realpathSync(installedAtomPath)).toBe(
|
|
// fs.realpathSync(atomBinPath)
|
|
// );
|
|
// expect(fs.isExecutableSync(installedAtomPath)).toBe(true);
|
|
// expect(fs.isFileSync(path.join(installationPath, 'atom'))).toBe(
|
|
// false
|
|
// );
|
|
// done();
|
|
// });
|
|
// });
|
|
// });
|
|
//
|
|
// it("symlinks the apm command as 'apm-nightly'", () => {
|
|
// const installedApmPath = path.join(installationPath, 'apm-nightly');
|
|
// expect(fs.isFileSync(installedApmPath)).toBeFalsy();
|
|
//
|
|
// waitsFor(done => {
|
|
// installer.installApmCommand(false, error => {
|
|
// expect(error).toBeNull();
|
|
// expect(fs.realpathSync(installedApmPath)).toBe(
|
|
// fs.realpathSync(apmBinPath)
|
|
// );
|
|
// expect(fs.isExecutableSync(installedApmPath)).toBeTruthy();
|
|
// expect(fs.isFileSync(path.join(installationPath, 'nightly'))).toBe(
|
|
// false
|
|
// );
|
|
// done();
|
|
// });
|
|
// });
|
|
// });
|
|
// });
|
|
// });
|