Commit Graph
35 Commits
Author SHA1 Message Date
Carl Eberhard 60e2a0b3df UI, paired collection creator: refactor autopairing and add tests 2015-02-10 18:15:43 -05:00
Carl Eberhard 3ec57d0833 UI, utils: modularize (AMD) naturalSort and move to utils 2015-02-10 13:42:59 -05:00
Carl Eberhard b3f39b8d5a UI, paired collection creator: move to underscore fn binding, allow name param in createList, add qunit test and data 2015-02-10 13:38:30 -05:00
Carl Eberhard 4825b9ed5c History structure: incorporate tool data, refactor; HDA API: return create_time 2014-11-06 12:56:13 -05:00
Carl Eberhard 936c0a2f76 History structure: (<root>/history/structure) horizontal layout of job/history DAG separated into components (a work in progress) and associated qunit tests; Job model and list-item; rudimentary js graph library and tests; Qunit: allow import of test-data; minor fixes 2014-10-15 13:11:30 -04:00
John Chilton ef1877b468 Small tweaks to some functional test tools.
Add data labels so the tools works in the workflow editor and added a conditional switches to some with collection params and multiple input data parameters to test some state-y logic in workflow editor.
2014-09-03 08:43:25 -04:00
John Chilton 6d727ce454 Merge stable. 2014-09-02 16:41:48 -04:00
John Chilton 24e914f57b Fix workflow editor bug related state updates for collections attached to multiple input data parameters.
Detail bug report from Michael Crusoe here : https://trello.com/c/0mdGCx4P.

This also fixes a test case added in 289e48b which was both attempting to assert something wrong and was incorrectly implemented. Augmenting the workflow editor test suite with some actually valid test cases that assert the correct behaviors.

For a longer explaination - workflow input terminals have two related concepts 'canAccept' and 'attachable'. An output terminal is 'attachable' if in the abstract it could be attached to the input regardless of whether the input is already filled or not. 'canAccept' is more stateful in that an output terminal is 'canAccept'able if the input terminal is not filled ('_inputFilled') and it is 'attachable'.

So - the problem was 'attachable' was not correctly defined for a multiple input data parameters. 'attachable' was asserting that any connected input terminal could not be 'attachable' by an collection output terminal - so on these asynchronous node state changes collections attached to multiple input data parameters were being wiped out. The more percise/correct distinction is that if a multiple input data parameter has single inputs connected to it - it cannot also have a collection connected to it (yet anyway). This fixes the mentioned bug.

The problematic test case was conflating 'attachable' and 'canAccept'able - I have fixed the test case to verify the correct 'attachable' logic and added newer, higher level test cases to test the canAccept logic and the actual behavior the end user would observe (of the connector being destroy).
2014-09-02 11:20:44 -04:00
Carl Eberhard f176ac0ee2 QA, qunit: update HDA, history contents tests 2014-08-12 12:48:28 -04:00
John Chilton cda34115c5 Bugfix: Workflow editor would unnessecarily leave nodes in mapped over state when no connections force it.
Other small code harmonizations to do this cleanly.
2014-05-27 12:52:41 -05:00
John Chilton b8de16eff2 Bugfix: Fix another attachable bug related to collections and multiple inputs (like 1882eff).
With unit tests that would have prevented both bugs.
2014-05-27 12:52:41 -05:00
John Chilton 430fbc6bf5 Unit tests (would have prevented bug in 4044a2a and similar bugs). 2014-05-27 12:52:41 -05:00
John Chilton fa7d906333 Dataset collections - update workflow editor for collection inputs, mapping, and reduction.
This commit enables the workflow editor to deal with input collection data parameter types and inputs (easy) and much more complicatedly reason about mappings and reductions over inputs and collection inputs. Not sure I can really describe the new interface in a changeset - essentially it is more complicated to determine if a input can be connected to by an output - and that connection affects what are valid other inputs and what the outputs are.
2014-05-06 08:54:31 -05:00
John Chilton 9125805b18 Workflow Editor Unit Tests - Improvements to input terminal canAccept tests.
Use real connectors, add tests for logic related to multiple input data parameters.
2014-04-26 17:52:08 -05:00
John Chilton b5e97ea32b Workflow Editor: Merge addDataInput and replaceDataInput into common method.
Reduces some code duplication here and reduces even more code duplication downstream in dataset collections work.
2014-04-22 11:13:27 -05:00
John Chilton cdeaba1f29 Workflow Editor: Replace instead of recreate terminal on update.
This fixes at least one subtle bug related to multiple input data parameters (actually probably two bugs) because the old logic assumed there was only one connector per input terminal.

This should be more efficient, lead to some code duplication deletion in subsequent changesets, and really help dataset collections where terminals are much more complex (there are data inputs and collection inputs, and each can be mapped over by collections) - this helps manage complexity downstream.
2014-04-22 11:13:27 -05:00
John Chilton 553bbee7db Workflow Editor: Rework InputTerminal to implement/use an update method (w/tests).
This will enable replacing terminals instead of recreating them and reconnecting in subsequent changesets.
2014-04-22 11:13:27 -05:00
John Chilton cbfa265b83 Bugfix: Workflow editor could get in invalid state when trying to preserve connections.
Workflow editor would preserve connections when a tool would update its state (for instance switching a conditional or adding repeat) - but conditional switching can result in connections being invalid (wouldn't have passed can_accept previously). Consider the following tool for instance which changes datatypes of an input based on a conditional (https://gist.github.com/jmchilton/11152628).
2014-04-21 14:27:01 -05:00
John Chilton 5caf9dd13d Workflow Editor: Improve tests related to input terminal canAccept/datatypes.
Elminate stub, create mock tree off inputs (demonstrates what server is feeding), add test for direct and subtype. Add tests for PJA changing output connection datatypes.
2014-04-21 14:27:01 -05:00
John Chilton e454c738e1 Workflow Editor: Rename can_accept to canAccept. 2014-04-21 14:27:01 -05:00
Carl Eberhard 1a88077a9a Metrics: make the cache use localStorage for persistence 2014-04-21 11:37:26 -04:00
John Chilton 8ece04ac0c Merge pull request #363.
Was previously declined so that pull request #370 could be resolved first - but upon actually inspecting #370 I don't think these will conflict in anyway.
2014-04-19 11:57:53 -05:00
Carl Eberhard fd5e9d2d2c QA, metrics-logger: finish tests for existing; casperjs: restore correct return value for loggedInAs 2014-04-18 15:58:29 -04:00
Carl Eberhard b7212b0f37 QA, metrics logger: test metrics post 2014-04-18 14:42:26 -04:00
Carl Eberhard 302f2109ed QA: more testing of metrics logger 2014-04-18 12:58:20 -04:00
Carl Eberhard a3a02170cb QA: add qunit tests for galaxy-app-base; Fix defaults in metrics-logger tests 2014-04-18 09:56:31 -04:00
Dave Bouvier 5bdb75aa82 Correct usage of "it's" versus "its". 2014-04-17 15:49:32 -04:00
Carl Eberhard e68c90329a QA: allow grunt watch on qunit tests, add stubs for metrics-logger and hda-base 2014-04-11 13:34:06 -04:00
John Chilton a63f4d0c13 Workflow editor backbonification - make Terminal classes into models. 2014-04-10 15:46:07 -05:00
John Chilton aaa97c62a0 Workflow editor backbonification - make Node a model. 2014-04-10 15:46:07 -05:00
John Chilton b6ad39d461 Workflow editor backbonification - add OutputTerminalView.
Add unit tests for OutputTerminalView.
2014-04-10 15:46:07 -05:00
John Chilton 0aaa9f97ce Workflow editor backbonification - add InputTerminalView.
Add unit tests for new view.
2014-04-10 15:46:06 -05:00
John Chilton ab63eec1c6 Workflow editor backbonification - add NodeView.
Including unit tests.
2014-04-10 15:46:06 -05:00
John Chilton 7b2c20cc46 Outline workflow editor tests. 2014-04-10 13:31:48 -05:00
John Chilton bb9634e7ee Unit testing framework for client code.
This work is based on QUnit and tests are runnable in-browser without any external dependencies or via command-line using grunt and PhantomJS. See README.txt in `test/qunit` directory for more information on how to run tests.

A test case is defined by an HTML and JavaScript source file. The file `test-common.js` will bootstrap most of the minimal HTML needed for qunit and configure require so nearly all testing logic is isolated into test js file. An example test is included that demonstrates how to build tests using requirejs's `define` and target backbone components. Tests can target non-backbone code as well.

Sinon is included for stubbing out server interactions, etc... when testing backbone components. This seems to be a popular fallback for backbone projects not using Jasmine.
2014-04-03 16:20:59 -05:00