Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: os-js/osjs-cli
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: dddefe049853519ae1b221dacbe389673b942d90
Choose a base ref
...
head repository: os-js/osjs-cli
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 4e268ae5ce3cbc8e63f66f3c64b1642fffaeb54a
Choose a head ref
  • 20 commits
  • 31 files changed
  • 1 contributor

Commits on May 5, 2019

  1. Verified

    This commit was signed with the committer’s verified signature.
    gregberge Greg Bergé
    Copy the full SHA
    d37a741 View commit details
  2. Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    b237607 View commit details
  3. Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    d0aaaef View commit details
  4. Updated eslintrc

    andersevenrud committed May 5, 2019

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    c6cb0cd View commit details
  5. Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    d882ec3 View commit details
  6. Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    cf0022b View commit details
  7. Added unit tests

    andersevenrud committed May 5, 2019

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    31c6df9 View commit details
  8. Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    1149eb5 View commit details
  9. Updated README badges

    andersevenrud committed May 5, 2019

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    666a32e View commit details

Commits on Jun 14, 2019

  1. Updated eslint

    andersevenrud committed Jun 14, 2019

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    db030ec View commit details

Commits on Jan 19, 2020

  1. Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    f81b260 View commit details
  2. Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    47329ba View commit details
  3. Removed unused watch:all task

    Will be replaced with a standalone tool w/documentation.
    andersevenrud committed Jan 19, 2020

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    3395e30 View commit details
  4. Updated dependencies

    And made changes to codebase affected by breaking changes in updates
    andersevenrud committed Jan 19, 2020

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    79b27fc View commit details
  5. Verified

    This commit was signed with the committer’s verified signature.
    gregberge Greg Bergé
    Copy the full SHA
    e3d1fa6 View commit details
  6. Verified

    This commit was signed with the committer’s verified signature.
    gregberge Greg Bergé
    Copy the full SHA
    dc5f7b2 View commit details
  7. Updated unit tests

    andersevenrud committed Jan 19, 2020

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    22564c8 View commit details
  8. Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    d64f6dc View commit details
  9. Updated .travis.yml

    andersevenrud committed Jan 19, 2020

    Verified

    This commit was signed with the committer’s verified signature.
    gregberge Greg Bergé
    Copy the full SHA
    5194452 View commit details
  10. Version bump

    andersevenrud committed Jan 19, 2020

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    4e268ae View commit details
11 changes: 11 additions & 0 deletions .codeclimate.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
version: 2
plugins:
eslint:
enabled: true
stylelint:
enabled: true
exclude_patterns:
- src/tasks/watch.js
- src/templates
- __tests__/**
- __mocks__/**
56 changes: 5 additions & 51 deletions .eslintrc
Original file line number Diff line number Diff line change
@@ -5,56 +5,10 @@
},
"parserOptions": {
"sourceType": "module",
"ecmaVersion": 8
"ecmaVersion": 2018,
"ecmaFeatures": {
"experimentalObjectRestSpread": true
}
},
"globals": {
"Promise": true,
"ArrayBuffer": true,
"File": true,
"Blob": true
},
"extends": "eslint:recommended",
"rules": {
"eqeqeq": ["error", "always"],
"quotes": ["error", "single"],
"linebreak-style": ["error", "unix"],
"semi": ["error", "always"],
"indent": ["error", 2],
"radix": 1,
"eol-last": ["error", "always"],
"consistent-return": 1,
"space-in-parens": ["error", "never"],
"space-before-function-paren": ["error", {
"anonymous": "never",
"named": "never",
"asyncArrow": "always"
}],
"space-before-blocks": ["error", "always"],
"space-infix-ops": ["error", {"int32Hint": false}],
"space-unary-ops": ["error", {"words": true, "nonwords": false}],
"spaced-comment": ["warn", "always"],
"prefer-arrow-callback": 1,
"prefer-spread": 1,
"prefer-rest-params": 1,
"template-curly-spacing": ["warn", "never"],
"no-multiple-empty-lines": ["error"],
"no-unused-vars": ["error", {"vars": "all", "args": "none"}],
"no-useless-constructor": 1,
"no-var": 2,
"no-duplicate-imports": 2,
"no-console": "off",
"no-extra-semi": 2,
"no-eval": 2,
"no-invalid-this": 1,
"no-new-func": 2,
"no-return-await": 1,
"no-self-compare": 2,
"no-with": 2,
"no-multi-assign": 1,
"no-new-object": 2,
"no-tabs": 1,
"no-trailing-spaces": 2,
"comma-spacing": ["error", { "before": false, "after": true }],
"object-curly-spacing": ["error", "never"]
}
"extends": "@osjs/eslint-config"
}
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -2,3 +2,4 @@
.tern-*
node_modules/
package-lock.json
coverage/
19 changes: 17 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,22 @@
language: node_js
node_js:
- 8
- "8"
- "10"
- "13"
cache:
directories:
- node_modules
env:
global:
- CC_TEST_REPORTER_ID=c7ef634d96a67d1c98a87dadc02205dc01f9b935cd10699d9d1bce46ccdcbd27
before_script:
- curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
- chmod +x ./cc-test-reporter
- ./cc-test-reporter before-build
after_script:
- ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT
install:
- npm install
- npm install -g jest
script:
- npm run eslint
- npm test
19 changes: 19 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,24 @@
# Changelog for osjs-cli

## 3.0.19

* Updated .travis.yml
* Updated package.json scripts
* Updated linter configurations in application templates
* Updated dependencies
* Updated application template dotfiles
* Updated application template dependencies
* Updated eslint rules
* Updated README badges
* Updated codeclimate ignores
* Updated package.json files section
* Removed unused watch:all task
* Removed deprecated 'make:package' task
* Added unit tests
* Scaffold tasks can now be done without interactive wizard
* Updated 'args' passed to tasks
* Split up some source code

## 3.0.18

* Added 'info' task
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -5,6 +5,8 @@
[OS.js](https://www.os-js.org/) is an [open-source](https://raw.githubusercontent.com/os-js/OS.js/master/LICENSE) desktop implementation for your browser with a fully-fledged window manager, Application APIs, GUI toolkits and filesystem abstraction.

[![Build Status](https://travis-ci.org/os-js/osjs-cli.svg?branch=master)](https://travis-ci.org/os-js/osjs-cli)
[![Test Coverage](https://api.codeclimate.com/v1/badges/074b81c78fd887a7def5/test_coverage)](https://codeclimate.com/github/os-js/osjs-cli/test_coverage)
[![Maintainability](https://api.codeclimate.com/v1/badges/074b81c78fd887a7def5/maintainability)](https://codeclimate.com/github/os-js/osjs-cli/maintainability)
[![Support](https://img.shields.io/badge/patreon-support-orange.svg)](https://www.patreon.com/user?u=2978551&ty=h&u=2978551)
[![Back](https://opencollective.com/osjs/tiers/backer/badge.svg?label=backer&color=brightgreen)](https://opencollective.com/osjs)
[![Sponsor](https://opencollective.com/osjs/tiers/sponsor/badge.svg?label=sponsor&color=brightgreen)](https://opencollective.com/osjs)
Empty file.
3 changes: 3 additions & 0 deletions __mocks__/packages/Application/metadata.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"name": "Application"
}
5 changes: 5 additions & 0 deletions __mocks__/packages/Application/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"osjs": {
"type": "package"
}
}
3 changes: 3 additions & 0 deletions __mocks__/packages/Failed/metadata.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"malformed
}
5 changes: 5 additions & 0 deletions __mocks__/packages/Failed/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"osjs": {
"type": "package"
}
}
Empty file.
4 changes: 4 additions & 0 deletions __mocks__/packages/Theme/metadata.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"name": "Theme",
"type": "theme"
}
5 changes: 5 additions & 0 deletions __mocks__/packages/Theme/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"osjs": {
"type": "package"
}
}
12 changes: 12 additions & 0 deletions __mocks__/setup.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
const logger = require('consola');

jest.spyOn(console, 'info')
.mockImplementation(() => {});

jest.spyOn(console, 'log')
.mockImplementation(() => {});

jest.spyOn(process, 'exit')
.mockImplementation(() => {});

logger.mockTypes(() => jest.fn());
24 changes: 24 additions & 0 deletions __tests__/cli.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
const path = require('path');
const cli = require('../src/cli.js');

describe('cli', () => {
const createInstance = (...argv) => cli([
'/usr/bin/node',
'/tmp/node_modules/.bin/osjs-cli',
...argv
], {
root: path.resolve(__dirname, '..')
});

test('should initialize without error', () => {
return expect(createInstance())
.resolves
.toBe(undefined);
});

test('should run info task', () => {
return expect(createInstance('info'))
.resolves
.toBe(undefined);
});
});
53 changes: 53 additions & 0 deletions __tests__/tasks/discover.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
const logger = require('consola');
const path = require('path');
const temp = require('temp');
const fs = require('fs-extra');
const utils = require('../../src/utils.js');
const task = require('../../src/tasks/discover.js');

// FIXME: Memory fs
describe('task > package:discover', () => {
const root = temp.mkdirSync('osjs-cli-jest');
const fname = str => path.resolve(root, str);

afterAll(() => fs.removeSync(root));

test('should discover packages', async () => {
const defaults = utils.createOptions({root});

const options = utils.resolveOptions(defaults, {
discover: [
path.resolve(__dirname, '../../__mocks__/packages'),
path.resolve(__dirname, '../../__mocks__/packages')
]
});

await task['package:discover']
.action({
logger,
options,
args: {},
commander: null
});

expect(fs.existsSync(fname('dist/metadata.json')))
.toBe(true);

expect(require(fname('dist/metadata.json')))
.toMatchObject([{
name: 'Application'
}, {
name: 'Theme',
type: 'theme'
}]);

expect(fs.existsSync(fname('dist/apps/Application/main.js')))
.toBe(true);

expect(fs.existsSync(fname('dist/themes/Theme/main.js')))
.toBe(true);

expect(fs.existsSync(fname('dist/apps/Failed')))
.toBe(false);
});
});
126 changes: 126 additions & 0 deletions __tests__/tasks/scaffold.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
const logger = require('consola');
const path = require('path');
const temp = require('temp');
const fs = require('fs-extra');
const utils = require('../../src/utils.js');
const task = require('../../src/tasks/scaffold.js');

describe('task > make:*', () => {
const root = temp.mkdirSync('osjs-cli-jest');
const fname = str => path.resolve(root, str);

const defaults = utils.createOptions({root});

const options = utils.resolveOptions(defaults, {
discover: [
path.resolve(__dirname, '../../__mocks__/packages')
]
});

const runTask = (name, args = {}) => task[name]
.action({
logger,
options,
args,
commander: null
});

const basicScaffold = async (name, type) => {
const filename = `my-${name}.js`;
await runTask(`make:${name}`, {type, filename});

return fs.existsSync(fname(`src/${type}/${filename}`));
};

afterAll(() => fs.removeSync(root));

describe('make:auth', () => {
test('should create client auth adapter', () => {
return expect(basicScaffold('auth', 'client'))
.resolves
.toBe(true);
});

test('should create server auth adapter', async () => {
return expect(basicScaffold('auth', 'server'))
.resolves
.toBe(true);
});

test('should fail when exists', async () => {
return expect(basicScaffold('auth', 'server'))
.rejects
.toBeInstanceOf(Error);
});
});

describe('make:settings', () => {
test('should create client settings adapter', () => {
return expect(basicScaffold('settings', 'client'))
.resolves
.toBe(true);
});

test('should create server settings adapter', async () => {
return expect(basicScaffold('settings', 'server'))
.resolves
.toBe(true);
});
});

describe('make:provider', () => {
test('should create client provider adapter', () => {
return expect(basicScaffold('provider', 'client'))
.resolves
.toBe(true);
});

test('should create server provider adapter', async () => {
return expect(basicScaffold('provider', 'server'))
.resolves
.toBe(true);
});
});

describe('make:vfs', () => {
test('should create client vfs adapter', () => {
return expect(basicScaffold('vfs', 'client'))
.resolves
.toBe(true);
});

test('should create server vfs adapter', async () => {
return expect(basicScaffold('vfs', 'server'))
.resolves
.toBe(true);
});
});

describe('make:application', () => {
test('should create application', async () => {
await runTask('make:application', {
dry: true,
force: true,
name: 'StandardApplication',
target: 'src/packages/StandardApplication'
});

expect(fs.readdirSync(fname('src/packages/StandardApplication')))
.toHaveLength(6);
});
});

describe('make:iframe-application', () => {
test('should create application', async () => {
await runTask('make:iframe-application', {
dry: true,
force: true,
name: 'IframeApplication',
target: 'src/packages/IframeApplication'
});

expect(fs.readdirSync(fname('src/packages/IframeApplication')))
.toHaveLength(5);
});
});
});
Loading