Skip to content
/ limber Public

A config-driven LIMS built on Sequencescape, primarily for running library preparation pipelines in the laboratory

License

Notifications You must be signed in to change notification settings

sanger/limber

Folders and files

NameName
Last commit message
Last commit date

Latest commit

3b17556 · Jan 21, 2021
Jan 21, 2021
Oct 16, 2020
Jan 18, 2021
May 25, 2011
Jan 18, 2021
Jan 12, 2021
Jul 17, 2019
Oct 3, 2018
Oct 16, 2020
Jan 21, 2021
Jun 12, 2020
Mar 11, 2019
Oct 16, 2020
Jan 23, 2020
Oct 12, 2016
Nov 13, 2020
Jan 3, 2019
May 28, 2020
Jan 23, 2020
Oct 20, 2020
Dec 3, 2020
Dec 4, 2020
Nov 13, 2020
Jun 22, 2017
Oct 23, 2020
Jul 27, 2018
Jun 2, 2020
Sep 22, 2020
Sep 14, 2020
Jun 2, 2020
Aug 22, 2018
Dec 4, 2020
Mar 8, 2019
Dec 4, 2020

Repository files navigation

Limber Pipeline Application

Build Status Yard Docs

Description

A flexible front end to plate bases pipelines in Sequencescape

Docs

In addition to the externally hosted YARD docs, you can also run a local server:

yard server -r --gems -m limber

You can then access the Limber documentation through: http://localhost:8808/docs/limber Yard will also try and document the installed gems: http://localhost:8808/docs

Configuring pipelines

{file:docs/configuring_new_pipelines.md Configuring new pipelines}

Running Specs

RSpec

Ruby unit and feature tests:

    bundle exec rspec

Karma

JavaScript unit tests:

    yarn karma start --single-run

If you get '[Webpacker] Compilation Failed' when trying to run specs, you might need to get yarn to install its dependencies properly. One way of doing this is by precompiling the assets:

    yarn
    rake assets:precompile

This has the added benefit that it reduces the risk of timeouts when the tests are running, as assets will not get compiled on the fly.

Webpacker

You'll need to run webpack-dev-server when developing to ensure all the vue.js javascript is correctly compiled.

Writing specs

There are a few tools available to assist with writing specs:

Factory Bot

  • Strategies: You can use json :factory_name to generate the json that the API is expected to receive. This is very useful for mocking web responses. The association strategy is used for building nested json, it will usually only be used as part of other factories.

  • Traits:

    • api_object: Ensures that lots o the shared behaviour, like actions and uuids are generated automatically barcoded: Automatically ensures that barcode is populated with the correct hash, and calculates human and machine barcodes
    • build: Returns an actual object, as though already found via the api. Useful for unti tests
  • Helpers: with_has_many_associations and with_belongs_to_associations can be used in factories to set up the relevant json. They won't actually mock up the relevant requests, but ensure that things like actions are defined so that the api knows where to find them.

Request stubbing

Request stubs are provided by webmock. Two helper methods will assist with the majority of mocking requests to the api, stub_api_get and stub_api_post. See spec/support/api_url_helper.rb for details.

Note: Due to the way the api functions, the factories don't yet support nested associations.