Skip to content

june07/owncloud-sdk

 
 

Repository files navigation

Build Status codecov docs

Use this light-weight JS library with a promise-based interface for seamless communication with your ownCloud instance.
Supports only browser JS but requires JavaScript techniques like webpack to compile it properly.
For Node.js please have a look at this tag.

Install

$ npm install owncloud-sdk

Usage

const owncloud = require('owncloud-sdk');
let oc = new owncloud({
      baseUrl: config.owncloudURL,
      auth: {
        basic: {
          username: config.username,
          password: config.password
        }
      }
});

// Login
oc.login().then(status => {
    // STUFF
}).catch(error => {
    // HANDLE ERROR
});

// Share File With Link
oc.shares.shareFileWithLink('linkToYourFile').then(shareInfo => {
    console.log("Link is : " + shareInfo.getLink());
}).catch(error => {
    // HANDLE ERROR
});

// List all files
oc.files.list('/path/to/file/folder').then(files => {
    console.log(files);
}).catch(error => {
    console.log(error);
});

Example Projects

ownCloud web

ownCloud web will be the next generation web frontend for ownCloud. It uses owncloud-sdk.

All Methods Available

Full API documentation is available at docs

Building the Documentation

JSDocs

To build the jsdocs, type this command and follow the instructions on the terminal:

$ yarn build:docs

Unit/Integration tests

Overview

owncloud-sdk uses pactjs with jest for unit and integration test.

On the pact provider side, tests have 4 different interactions:

  • interactions that work on both oc10 & ocis
  • interactions that are "pending" on oc10 but should work on ocis
  • interactions that are "pending" on ocis but should work on oc10
  • interactions that are "pending" on both ocis & oc10

The CI is not expected to fail for the interactions that are "pending" but it's expected to fail for those interactions that were already verified and started failing. Pact.io has a system to handle such a scenario called pending pacts. This feature allows changed contracts to be verified without failing the provider's build.

Four different pacts for the different buckets of interactions are created when running the provider tests. Pacts that are allowed to fail are marked as pending else not.

In a consumer test, a new mock provider is created using the function createProvider. It takes two parameters: pendingOnOc10 and pendingOnOcis in order. Each parameter can have value true or false depending upon which provider-version the test is still pending.

To add a new consumer test which is expected to fail on ocis but pass on oc10 provider, provider should be created as:

describe('feature', function () {
  it('new test feature', function () {
    const isPendingOnOc10 = true // set this as true if the test is allowed to fail on oc10 provider
    const isPendingOnOcis = false // set this as true if the test is allowed to fail on ocis provider
    const provider = createProvider(isPendingOnOc10, isPendingOnOcis)
    // get interactions
    // execute test
    provider.executeTest(() => {
      // test body
    })
  })
})

Running Tests

At first, you need to create config.json file.

$ cp tests/config/config.sample.json tests/config/config.json

consumer tests

The pact consumer tests checks owncloud sdk against the pact mock server. In order to run these tests, use the following command:

$ yarn test-consumer

Note: If you have pacts from old test run in tests/pacts your tests will fail. Make sure to delete that before you run the tests again.

Provider tests

The pact provider tests the pacts generated from the consumer tests against the real owncloud backend server. For this you will need an actual owncloud server running. Then you can run the pact tests with the following command:

$ PROVIDER_BASE_URL=<owncloud-backend-url> yarn test-provider

Team


Noveen Sachdeva

Vincent Petry

Thomas Müller

GSoC'17

About

☁️ ownCloud client library for JavaScript

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 99.9%
  • Other 0.1%