GPII-434: General cleanup and rationalisation for Kettle - all test infrastructure definitions placed in namespace "kettle.test" with actual tests in "kettle.tests" - test infrastructure now loads automatically with the module - grunt tasks for linting, together with all files linted revealed various implementation problems with tests. Added gpii-grunt as a dev dependency in order to get access to "dedupe-infusion" task. Clear distinction made between "tests in the Kettle environment" and "tests based around a Kettle server" - former are bootstrapped with kettle.test.bootstrap, and latter with kettle.test.bootstrapServer
GPII-434: Support for arbitrary numbers of test case transforming functions to kettle.test.bootstrap.*
GPII-434, KETTLE-24: Updated version of when.js to 3.4.4 (current)
GPII-434: Reverted to when.js version 1.8.1 - versions after 2.0 are fully asynchronous and make a mess of Kettle's callback wrappers. Swapped order of accumulating callbacks in server test bootstrap
GPII-434: Further rationalisation of Kettle and its testing infrastructure. Complete elimination of "callbackWrappers" from appearance in all client code. We now use a simple hard-coded strategy pending our new future async strategy eliminating promises and callbacks etc. Changed default port of all Kettle servers and requests to 8081 to avoid clashing with the default for node-inspector. Resolved bug in DataSource which prevented upgrade to when.js version 3.4.4 - this commit was tested with that version of when.js but we have decided to continue with when.js 1.8.1 for now - see commentary on Kettle pull request #13 (KETTLE-24). Reverted to original component layout for server tests involving use of context {tests} rather than {serverEnvironment} - FLUID-5495 prevents a more flexible arrangement. Updated to version of Infusion and jqUnit with "anti-hang" support for IoC test cases.
GPII-434: Cleaning up some comments
GPII-434: Further rationalisation for Kettle - removed duplicated code between standard server and socket.io server - introduced new directive kettle.loadTestingSupport() to be used by client tests. Rationalised member names of servers -> httpServer, expressApp to avoid confusion by old names ("instance", "server"). Corrected peculiar timing issue in ErrorTests now revealed by destroying the server whilst a request is still underway.
GPII-434: Further amendments to kettle - more specific start/stop messages, and pushed down server creation event one level so that "configuration" can be accessed without triggering premature creation
GPII-434: Fix for test corruption on Windows caused by reconnection attempts by socket.io. Some improved diagnostics and commenting
GPII-434: Linting fixes, dead code elimination
GPII-434: Applying the grade "kettle.config" to every loaded config to aid system introspection
GPII-434: Complete refactoring of DataSource tests - these now pass reliably (previous tests mishandled asynchrony as well as registering a global error handler which counted every test failure as a pass). DataSource hierarchy reimplemented to make use of FLUID-5513 micropromises and associated async transform library. Updated to work with new FLUID-5503 module system. Rewritten error handling tests to much more simple implementation based on FLUID-5506-style stacking namespaced handlers. Numerous other pieces of rationalisation, especially in kettle.test.bootstrap* system which now provides regularised boilerplate for every style of kettle-aware test, and general namespacing
GPII-434: Removed when.js from the image entirely, in favour of fluidPromises.js implementation. Exposed "requestPromise" property on request in lieu of old "when half-promise". These cases will now be handled by new utility fluid.promise.map. Highlighted several places where test coverage has severe gap.
GPII-434: Restored socket.io client dependences as 1st class together with readme comment - these are required for 3rd-party tests
GPII-434: Updating infusion dependency to version with duplicate warning
GPII-434: Correct callback wrapping and writeMethod handling for HTTP DataSource from evidence from universal - this functionality needs dedicated tests
GPII-434: Test cases covering kettle.dataSource.URL employing a paired set of Kettle servers, together with new code path for applying limited filtering to a returned payload from a dataSource SET request.
GPII-434: Low-quality file globbing utility for finding test fixtures
GPII-434: Incorporated HTTP PUT method implementation and test cases from kaspermarkus' GPII-925 branch of Kettle. These ran into namespacing issues when combined with all the other tests due to Kettle's ridiculous scheme for looking up request handlers. Added some more helpful diagnostics when request handlers are not found.
GPII-434: Improved commenting - renamed config entry from meaningless "nodeEnv" to "configName". Removed file globbing search utilities - it provides a clearer and more portable architecture in which every file is indexed explicitly