
[0m[0m
[0m  Legacy ArrayPort[0m
[0m    Untyped ArrayPort instance[0m
[2K[0G    [32m  ✓[0m[90m should be of type "all"[0m
[0m    ArrayPort instance[0m
[2K[0G    [32m  ✓[0m[90m should retain the given type[0m
[0m      without attached socket[0m
[2K[0G      [32m  ✓[0m[90m should not be attached initially[0m
[2K[0G      [32m  ✓[0m[90m should allow connections[0m
[2K[0G      [32m  ✓[0m[90m should not be connected initially[0m
[2K[0G      [32m  ✓[0m[90m should not contain a socket initially[0m
[2K[0G      [32m  ✓[0m[90m should not allow connecting[0m
[2K[0G      [32m  ✓[0m[90m should not allow beginning groups[0m
[2K[0G      [32m  ✓[0m[90m should not allow sending data[0m
[2K[0G      [32m  ✓[0m[90m should not allow ending groups[0m
[2K[0G      [32m  ✓[0m[90m should not allow disconnecting[0m
[0m      with attached socket[0m
[2K[0G      [32m  ✓[0m[90m should emit an event[0m
[2K[0G      [32m  ✓[0m[90m should be marked as attached[0m
[2K[0G      [32m  ✓[0m[90m should still allow more connections[0m
[2K[0G      [32m  ✓[0m[90m should not be connected initially[0m
[2K[0G      [32m  ✓[0m[90m should have a reference to the socket[0m
[2K[0G      [32m  ✓[0m[90m should allow other sockets to be attached[0m
[2K[0G      [32m  ✓[0m[90m should emit an event on detaching[0m
[2K[0G      [32m  ✓[0m[90m should not be attached any longer[0m
[2K[0G      [32m  ✓[0m[90m should not contain the removed socket any longer[0m
[0m    Input ArrayPort[0m
[2K[0G    [32m  ✓[0m[90m should emit connection events[0m
[2K[0G    [32m  ✓[0m[90m should be connected after that[0m
[2K[0G    [32m  ✓[0m[90m should emit begin group events[0m
[2K[0G    [32m  ✓[0m[90m should emit data events[0m
[2K[0G    [32m  ✓[0m[90m should emit end group events[0m
[2K[0G    [32m  ✓[0m[90m should emit disconnection events[0m
[2K[0G    [32m  ✓[0m[90m should not be connected after that[0m
[2K[0G    [32m  ✓[0m[90m should connect automatically when sending[0m
[0m    Input ArrayPort with specified index[0m
[2K[0G    [32m  ✓[0m[90m shouldn't be attached initially[0m
[2K[0G    [32m  ✓[0m[90m should emit attaching events[0m
[2K[0G    [32m  ✓[0m[90m should be attached after that[0m
[2K[0G    [32m  ✓[0m[90m shouldn't have other indexes attached after that[0m
[2K[0G    [32m  ✓[0m[90m should emit connection events[0m
[2K[0G    [32m  ✓[0m[90m should be connected after that[0m
[2K[0G    [32m  ✓[0m[90m shouldn't have other indexes connected after that[0m
[2K[0G    [32m  ✓[0m[90m should emit begin group events[0m
[2K[0G    [32m  ✓[0m[90m should emit data events[0m
[2K[0G    [32m  ✓[0m[90m should emit end group events[0m
[2K[0G    [32m  ✓[0m[90m should emit disconnection events[0m
[2K[0G    [32m  ✓[0m[90m should not be connected after that[0m
[2K[0G    [32m  ✓[0m[90m should connect automatically when sending[0m
[2K[0G    [32m  ✓[0m[90m should emit attaching events[0m
[2K[0G    [32m  ✓[0m[90m shouldn't be attached after that[0m
[0m    Output ArrayPort[0m
[2K[0G    [32m  ✓[0m[90m should connect the socket[0m
[2K[0G    [32m  ✓[0m[90m should begin groups on the socket[0m
[2K[0G    [32m  ✓[0m[90m should send data to the socket[0m
[2K[0G    [32m  ✓[0m[90m should end groups on the socket[0m
[2K[0G    [32m  ✓[0m[90m should disconnect the socket[0m
[2K[0G    [32m  ✓[0m[90m should connect automatically when sending[0m

[0m  AsyncComponent with missing ports[0m
[2K[0G  [32m  ✓[0m[90m should throw an error on instantiation when no IN defined[0m
[2K[0G  [32m  ✓[0m[90m should throw an error on instantion when no OUT defined[0m

[0m  AsyncComponent without a doAsync method[0m
[2K[0G  [32m  ✓[0m[90m should throw an error if there is no connection to the ERROR port[0m
[2K[0G  [32m  ✓[0m[90m should send an error to the ERROR port if connected[0m
[2K[0G  [32m  ✓[0m[90m should send groups and error to the ERROR port if connected[0m

[0m  Implemented AsyncComponent[0m
[2K[0G  [32m  ✓[0m[90m should send load information and packets in correct order[0m[31m (301ms)[0m

[0m  Component[0m
[0m    with required ports[0m
[2K[0G    [32m  ✓[0m[90m should throw an error upon sending packet to an unattached required port[0m
[2K[0G    [32m  ✓[0m[90m should be cool with an attached port[0m
[0m    with component creation shorthand[0m
[2K[0G    [32m  ✓[0m[90m should make component creation easy[0m
[2K[0G    [32m  ✓[0m[90m should throw errors if there is no error port[0m
[2K[0G    [32m  ✓[0m[90m should throw errors if there is a non-attached error port[0m
[2K[0G    [32m  ✓[0m[90m should not throw errors if there is a non-required error port[0m
[2K[0G    [32m  ✓[0m[90m should send errors if there is a connected error port[0m
[0m    defining ports with invalid names[0m
[2K[0G    [32m  ✓[0m[90m should throw an error with uppercase letters in inport[0m
[2K[0G    [32m  ✓[0m[90m should throw an error with uppercase letters in outport[0m
[2K[0G    [32m  ✓[0m[90m should throw an error with special characters in inport[0m
[0m    starting a component[0m
[2K[0G    [32m  ✓[0m[90m should flag the component as started[0m
[0m    shutting down a component[0m
[2K[0G    [32m  ✓[0m[90m should flag the component as not started[0m
[0m    with object-based IPs[0m
[2K[0G    [32m  ✓[0m[90m should speak IP objects[0m
[2K[0G    [32m  ✓[0m[90m should support substreams[0m
[0m    with process function[0m
[2K[0G    [32m  ✓[0m[90m should trigger on IPs[0m
[2K[0G    [32m  ✓[0m[90m should not be triggered by non-triggering ports[0m
[2K[0G    [32m  ✓[0m[90m should fetch undefined for premature data[0m
[2K[0G    [32m  ✓[0m[90m should receive and send complete IP objects[0m
[2K[0G    [32m  ✓[0m[90m should receive and send just IP data if wanted[0m
[2K[0G    [32m  ✓[0m[90m should keep last value for controls[0m
[2K[0G    [32m  ✓[0m[90m should keep last data-typed IP packet for controls[0m
[2K[0G    [32m  ✓[0m[90m should isolate packets with different scopes[0m
[2K[0G    [32m  ✓[0m[90m should be able to change scope[0m
[2K[0G    [32m  ✓[0m[90m should preserve order between input and output[0m
[2K[0G    [32m  ✓[0m[90m should ignore order between input and output[0m
[2K[0G    [32m  ✓[0m[90m should throw errors if there is no error port[0m
[2K[0G    [32m  ✓[0m[90m should throw errors if there is a non-attached error port[0m
[2K[0G    [32m  ✓[0m[90m should not throw errors if there is a non-required error port[0m
[2K[0G    [32m  ✓[0m[90m should send errors if there is a connected error port[0m
[2K[0G    [32m  ✓[0m[90m should send substreams with multiple errors per activation[0m
[2K[0G    [32m  ✓[0m[90m should forward brackets for map-style components[0m
[2K[0G    [32m  ✓[0m[90m should support custom bracket forwarding mappings with auto-ordering[0m
[2K[0G    [32m  ✓[0m[90m should forward IP metadata for map-style components[0m
[0m      with custom callbacks[0m
[2K[0G      [32m  ✓[0m[90m should fail on wrong input[0m
[2K[0G      [32m  ✓[0m[90m should send substreams[0m

[0m  ComponentLoader with no external packages installed[0m
[2K[0G  [32m  ✓[0m[90m should initially know of no components[0m
[2K[0G  [32m  ✓[0m[90m should not initially require revalidation[0m
[2K[0G  [32m  ✓[0m[90m should not initially be ready[0m
[2K[0G  [32m  ✓[0m[90m should not initially be processing[0m
[2K[0G  [32m  ✓[0m[90m should not have any packages in the checked list[0m
[2K[0G  [32m  ✓[0m[90m should be able to read a list of components[0m
[0m    normalizing names[0m
[2K[0G    [32m  ✓[0m[90m should return simple module names as-is[0m
[2K[0G    [32m  ✓[0m[90m should return empty for NoFlo core[0m
[2K[0G    [32m  ✓[0m[90m should strip noflo-[0m
[2K[0G    [32m  ✓[0m[90m should strip NPM scopes[0m
[2K[0G    [32m  ✓[0m[90m should strip NPM scopes and noflo-[0m
[0m    after listing components[0m
[2K[0G    [32m  ✓[0m[90m should have the Graph component registered[0m
[0m    loading the Graph component[0m
[2K[0G    [32m  ✓[0m[90m should be able to load the component[0m
[2K[0G    [32m  ✓[0m[90m should contain input ports[0m
[2K[0G    [32m  ✓[0m[90m should have "on" method on the input port[0m
[2K[0G    [32m  ✓[0m[90m it should know that Graph is a subgraph[0m
[2K[0G    [32m  ✓[0m[90m should know the description for the Graph[0m
[2K[0G    [32m  ✓[0m[90m should be able to provide an icon for the Graph[0m
[0m    loading the Graph component[0m
[2K[0G    [32m  ✓[0m[90m should be able to load the component[0m
[2K[0G    [32m  ✓[0m[90m should have a reference to the Component Loader's baseDir[0m
[0m    loading a component[0m
[2K[0G    [32m  ✓[0m[90m should return an error on an invalid component type[0m
[0m    register a component at runtime[0m
[2K[0G    [32m  ✓[0m[90m should be available in the components list[0m
[2K[0G    [32m  ✓[0m[90m should be able to load the component[0m
[2K[0G    [32m  ✓[0m[90m should have the correct ports[0m
[2K[0G    [32m  ✓[0m[90m should have inherited its icon from the library[0m
[2K[0G    [32m  ✓[0m[90m should emit an event on icon change[0m
[2K[0G    [32m  ✓[0m[90m new instances should still contain the original icon[0m
[2K[0G    [32m  ✓[0m[90m after setting an icon for the Component class, new instances should have that[0m
[2K[0G    [32m  ✓[0m[90m should not affect the original instance[0m
[0m    reading sources[0m
[2K[0G    [32m  ✓[0m[90m should be able to provide source code for a component[0m
[2K[0G    [32m  ✓[0m[90m should return an error for missing components[0m
[2K[0G    [32m  ✓[0m[90m should return an error for non-file components[0m
[0m    writing sources[0m
[0m      with working code[0m
[2K[0G      [32m  ✓[0m[90m should be able to set the source[0m
[2K[0G      [32m  ✓[0m[90m should be a loadable component[0m
[0m      with non-working code[0m
[2K[0G      [32m  ✓[0m[90m should be able to set the source[0m
[2K[0G      [32m  ✓[0m[90m should not be a loadable component[0m

[0m  ComponentLoader with a fixture project[0m
  [36m  - should be possible to instantiate[0m
  [36m  - should initially know of no components[0m
  [36m  - should not initially be ready[0m
  [36m  - should be able to read a list of components[0m
  [36m  - should be able to load a local component[0m
  [36m  - should be able to load a component from a dependency[0m
  [36m  - should be able to load a dynamically registered component from a dependency[0m
  [36m  - should be able to load core Graph component[0m
  [36m  - should fail loading a missing component[0m

[0m  Unnamed graph instance[0m
[2K[0G  [32m  ✓[0m[90m should have an empty name[0m

[0m  Graph[0m
[0m    with new instance[0m
[2K[0G    [32m  ✓[0m[90m should get a name from constructor[0m
[2K[0G    [32m  ✓[0m[90m should have no nodes initially[0m
[2K[0G    [32m  ✓[0m[90m should have no edges initially[0m
[2K[0G    [32m  ✓[0m[90m should have no initializers initially[0m
[2K[0G    [32m  ✓[0m[90m should have no exports initially[0m
[0m      New node[0m
[2K[0G      [32m  ✓[0m[90m should emit an event[0m
[2K[0G      [32m  ✓[0m[90m should be in graph's list of nodes[0m
[2K[0G      [32m  ✓[0m[90m should be accessible via the getter[0m
[2K[0G      [32m  ✓[0m[90m should have empty metadata[0m
[2K[0G      [32m  ✓[0m[90m should be available in the JSON export[0m
[2K[0G      [32m  ✓[0m[90m removing should emit an event[0m
[2K[0G      [32m  ✓[0m[90m should not be available after removal[0m
[0m      New edge[0m
[2K[0G      [32m  ✓[0m[90m should emit an event[0m
[2K[0G      [32m  ✓[0m[90m should add an edge[0m
[2K[0G      [32m  ✓[0m[90m should refuse to add a duplicate edge[0m
[0m      New edge with index[0m
[2K[0G      [32m  ✓[0m[90m should emit an event[0m
[2K[0G      [32m  ✓[0m[90m should add an edge[0m
[0m    loaded from JSON[0m
[2K[0G    [32m  ✓[0m[90m should produce a Graph[0m
[2K[0G    [32m  ✓[0m[90m should have a name[0m
[2K[0G    [32m  ✓[0m[90m should have graph metadata intact[0m
[2K[0G    [32m  ✓[0m[90m should produce same JSON when serialized[0m
[2K[0G    [32m  ✓[0m[90m should allow modifying graph metadata[0m
[2K[0G    [32m  ✓[0m[90m should contain four nodes[0m
[2K[0G    [32m  ✓[0m[90m the first Node should have its metadata intact[0m
[2K[0G    [32m  ✓[0m[90m should allow modifying node metadata[0m
[2K[0G    [32m  ✓[0m[90m should contain two connections[0m
[2K[0G    [32m  ✓[0m[90m the first Edge should have its metadata intact[0m
[2K[0G    [32m  ✓[0m[90m should allow modifying edge metadata[0m
[2K[0G    [32m  ✓[0m[90m should contain four IIPs[0m
[2K[0G    [32m  ✓[0m[90m should contain one published inport[0m
[2K[0G    [32m  ✓[0m[90m should contain one published outport[0m
[2K[0G    [32m  ✓[0m[90m should keep the output export metadata intact[0m
[2K[0G    [32m  ✓[0m[90m should contain two groups[0m
[2K[0G    [32m  ✓[0m[90m should allow modifying group metadata[0m
[2K[0G    [32m  ✓[0m[90m should allow renaming groups[0m
[0m      renaming a node[0m
[2K[0G      [32m  ✓[0m[90m should emit an event[0m
[2K[0G      [32m  ✓[0m[90m should be available with the new name[0m
[2K[0G      [32m  ✓[0m[90m shouldn't be available with the old name[0m
[2K[0G      [32m  ✓[0m[90m should have the edge still going from it[0m
[2K[0G      [32m  ✓[0m[90m should still be exported[0m
[2K[0G      [32m  ✓[0m[90m should still be grouped[0m
[2K[0G      [32m  ✓[0m[90m shouldn't be have edges with the old name[0m
[2K[0G      [32m  ✓[0m[90m should have the IIP still going to it[0m
[2K[0G      [32m  ✓[0m[90m shouldn't have IIPs going to the old name[0m
[2K[0G      [32m  ✓[0m[90m shouldn't be have export going to the old name[0m
[2K[0G      [32m  ✓[0m[90m shouldn't be grouped with the old name[0m
[0m      renaming an inport[0m
[2K[0G      [32m  ✓[0m[90m should emit an event[0m
[0m      renaming an outport[0m
[2K[0G      [32m  ✓[0m[90m should emit an event[0m
[0m      removing a node[0m
[2K[0G      [32m  ✓[0m[90m should emit an event[0m
[2K[0G      [32m  ✓[0m[90m shouldn't have edges left behind[0m
[2K[0G      [32m  ✓[0m[90m shouldn't have IIPs left behind[0m
[2K[0G      [32m  ✓[0m[90m shouldn't have exports left behind[0m
[2K[0G      [32m  ✓[0m[90m shouldn't be grouped[0m
[2K[0G      [32m  ✓[0m[90m shouldn't affect other groups[0m
[0m    with multiple connected ArrayPorts[0m
[2K[0G    [32m  ✓[0m[90m should contain four nodes[0m
[2K[0G    [32m  ✓[0m[90m should contain four edges[0m
[2K[0G    [32m  ✓[0m[90m should allow a specific edge to be removed[0m
[2K[0G    [32m  ✓[0m[90m shouldn't contain the removed connection from Split1[0m
[2K[0G    [32m  ✓[0m[90m should still contain the other connection from Split1[0m
[0m    with an Initial Information Packet[0m
[2K[0G    [32m  ✓[0m[90m should contain one node[0m
[2K[0G    [32m  ✓[0m[90m should contain no edges[0m
[2K[0G    [32m  ✓[0m[90m should contain one IIP[0m
[0m      on removing that IIP[0m
[2K[0G      [32m  ✓[0m[90m should emit a removeInitial event[0m
[2K[0G      [32m  ✓[0m[90m should contain no IIPs[0m
[0m    with an Inport Initial Information Packet[0m
[2K[0G    [32m  ✓[0m[90m should contain one node[0m
[2K[0G    [32m  ✓[0m[90m should contain no edges[0m
[2K[0G    [32m  ✓[0m[90m should contain one IIP for the correct node[0m
[0m      on removing that IIP[0m
[2K[0G      [32m  ✓[0m[90m should emit a removeInitial event[0m
[2K[0G      [32m  ✓[0m[90m should contain no IIPs[0m
[0m      on adding IIP for a non-existent inport[0m
[2K[0G      [32m  ✓[0m[90m should not add any IIP[0m
[0m    with an indexed Inport Initial Information Packet[0m
[2K[0G    [32m  ✓[0m[90m should contain one node[0m
[2K[0G    [32m  ✓[0m[90m should contain no edges[0m
[2K[0G    [32m  ✓[0m[90m should contain one IIP for the correct node[0m
[0m      on removing that IIP[0m
[2K[0G      [32m  ✓[0m[90m should emit a removeInitial event[0m
[2K[0G      [32m  ✓[0m[90m should contain no IIPs[0m
[0m      on adding IIP for a non-existent inport[0m
[2K[0G      [32m  ✓[0m[90m should not add any IIP[0m
[0m    with no nodes[0m
[2K[0G    [32m  ✓[0m[90m should not allow adding edges[0m
[2K[0G    [32m  ✓[0m[90m should not allow adding IIPs[0m
[0m    Legacy exports loaded via JSON[0m
[2K[0G    [32m  ✓[0m[90m should produce a Graph[0m
[2K[0G    [32m  ✓[0m[90m should have two legacy exports[0m
[2K[0G    [32m  ✓[0m[90m should fix the case of the process key[0m

[0m  Inport Port[0m
[0m    with default options[0m
[2K[0G    [32m  ✓[0m[90m should be of datatype "all"[0m
[2K[0G    [32m  ✓[0m[90m should not be required[0m
[2K[0G    [32m  ✓[0m[90m should not be addressable[0m
[2K[0G    [32m  ✓[0m[90m should not be buffered[0m
[0m    with custom type[0m
[2K[0G    [32m  ✓[0m[90m should retain the type[0m
[0m    without attached sockets[0m
[2K[0G    [32m  ✓[0m[90m should not be attached[0m
[2K[0G    [32m  ✓[0m[90m should allow attaching[0m
[2K[0G    [32m  ✓[0m[90m should not be connected initially[0m
[2K[0G    [32m  ✓[0m[90m should not contain a socket initially[0m
[0m    with processing function called with port as context[0m
[2K[0G    [32m  ✓[0m[90m should set context to port itself[0m
[0m    with default value[0m
[2K[0G    [32m  ✓[0m[90m should send the default value as a packet, though on next tick after initialization[0m
[2K[0G    [32m  ✓[0m[90m should send the default value before IIP[0m
[0m    with options stored in port[0m
[2K[0G    [32m  ✓[0m[90m should store all provided options in port, whether we expect it or not[0m
[0m    with data type information[0m
[2K[0G    [32m  ✓[0m[90m should accept a 'all' data type[0m
[2K[0G    [32m  ✓[0m[90m should accept a 'string' data type[0m
[2K[0G    [32m  ✓[0m[90m should accept a 'number' data type[0m
[2K[0G    [32m  ✓[0m[90m should accept a 'int' data type[0m
[2K[0G    [32m  ✓[0m[90m should accept a 'object' data type[0m
[2K[0G    [32m  ✓[0m[90m should accept a 'array' data type[0m
[2K[0G    [32m  ✓[0m[90m should NOT accept a 'not' data type[0m
[2K[0G    [32m  ✓[0m[90m should NOT accept a 'valie' data type[0m
[2K[0G    [32m  ✓[0m[90m should NOT accept a 'data' data type[0m
[2K[0G    [32m  ✓[0m[90m should NOT accept a 'types' data type[0m
[0m    with TYPE (i.e. ontology) information[0m
[2K[0G    [32m  ✓[0m[90m should be a URL or MIME[0m
[0m    with buffering[0m
[2K[0G    [32m  ✓[0m[90m should buffer incoming packets until `receive()`d[0m
[2K[0G    [32m  ✓[0m[90m should be able to tell the number of contained data packets[0m
[2K[0G    [32m  ✓[0m[90m should return undefined when buffer is empty[0m
[2K[0G    [32m  ✓[0m[90m shouldn't expose the receive method without buffering[0m
[0m    with accepted enumerated values[0m
[2K[0G    [32m  ✓[0m[90m should accept certain values[0m
[2K[0G    [32m  ✓[0m[90m should throw an error if value is not accepted[0m
[0m    with processing shorthand[0m
[2K[0G    [32m  ✓[0m[90m should create a port with a callback[0m
[2K[0G    [32m  ✓[0m[90m should also accept metadata (i.e. options) when provided[0m
[0m    with IP handle callback option[0m
[2K[0G    [32m  ✓[0m[90m should pass IP objects to handler[0m
[2K[0G    [32m  ✓[0m[90m should translate legacy events to IP objects[0m
[2K[0G    [32m  ✓[0m[90m should translate IP objects to legacy events[0m

[0m  Component traits[0m
[0m    MapComponent[0m
[2K[0G    [32m  ✓[0m[90m should pass data to the callback[0m
[2K[0G    [32m  ✓[0m[90m should pass groups to the callback[0m
[2K[0G    [32m  ✓[0m[90m should send groups and disconnect through[0m
[0m    WirePattern[0m
[0m      when grouping by packet groups[0m
[2K[0G      [32m  ✓[0m[90m should pass data and groups to the callback[0m
[2K[0G      [32m  ✓[0m[90m should work without a group provided[0m
[2K[0G      [32m  ✓[0m[90m should process inputs for different groups independently with group: true[0m
[2K[0G      [32m  ✓[0m[90m should support asynchronous handlers[0m[31m (102ms)[0m
[2K[0G      [32m  ✓[0m[90m should not forward groups if forwarding is off[0m
[2K[0G      [32m  ✓[0m[90m should forward groups from a specific port only[0m
[2K[0G      [32m  ✓[0m[90m should forward groups from selected ports only[0m
[0m      when `this` context is important[0m
[2K[0G      [32m  ✓[0m[90m should correctly bind component to `this` context[0m
[2K[0G      [32m  ✓[0m[90m should correctly bind component to `this` context in async mode[0m
[0m      when in async mode and packet order matters[0m
[2K[0G      [32m  ✓[0m[90m should preserve input order at the output[0m
[2K[0G      [32m  ✓[0m[90m should support complex substreams[0m
[0m      when grouping by field[0m
[2K[0G      [32m  ✓[0m[90m should match objects by specific field[0m[33m (44ms)[0m
[0m      when there are multiple output routes[0m
[2K[0G      [32m  ✓[0m[90m should send output to one or more of them[0m
[0m      when there are parameter ports[0m
[2K[0G      [32m  ✓[0m[90m should wait for required params without default value[0m
[2K[0G      [32m  ✓[0m[90m should work for async procs too[0m[33m (60ms)[0m
[2K[0G      [32m  ✓[0m[90m should reset state if shutdown() is called[0m
[2K[0G      [32m  ✓[0m[90m should drop premature data if configured to do so[0m
[0m      without output ports[0m
[2K[0G      [32m  ✓[0m[90m should be fine still[0m
[0m      when data processing is not possible at the moment[0m
[2K[0G      [32m  ✓[0m[90m should be able to postpone it until next tuple of data[0m
[2K[0G      [32m  ✓[0m[90m should be able to postpone and retry after timeout[0m
[2K[0G      [32m  ✓[0m[90m should be able to postpone it and resume when needed[0m
[0m      with many inputs and groups[0m
[2K[0G      [32m  ✓[0m[90m should handle mixed flow well[0m[31m (310ms)[0m
[0m      for batch processing[0m
[2K[0G      [32m  ✓[0m[90m should process sequences of packets separated by disconnects[0m
[0m      for batch processing with groups[0m
[2K[0G      [32m  ✓[0m[90m should wrap entire sequence with groups[0m
[0m      with addressable ports[0m
[2K[0G      [32m  ✓[0m[90m should wait for all param and any data port values (default)[0m
[2K[0G      [32m  ✓[0m[90m should wait for any param and all data values[0m
[2K[0G      [32m  ✓[0m[90m should wait for all indexes of a single input[0m
[2K[0G      [32m  ✓[0m[90m should behave normally with string output from another component[0m
[0m      when grouping requests[0m
[2K[0G      [32m  ✓[0m[90m should group requests by outer UUID group[0m[31m (105ms)[0m
[2K[0G      [32m  ✓[0m[90m should collect garbage every N requests[0m
[2K[0G      [32m  ✓[0m[90m should be able to drop a request explicitly[0m
[0m    MultiError[0m
[0m      with simple sync processes[0m
[2K[0G      [32m  ✓[0m[90m should support multiple customized error messages[0m
[2K[0G      [32m  ✓[0m[90m should pass if everything is correct[0m
[2K[0G      [32m  ✓[0m[90m should handle fatals and runtimes normally[0m
[0m      with async processes and groups[0m
[2K[0G      [32m  ✓[0m[90m should support multiple error messages and groups[0m
[2K[0G      [32m  ✓[0m[90m should pass if everything is correct[0m
[2K[0G      [32m  ✓[0m[90m should handle fatals and runtimes normally[0m
[2K[0G      [32m  ✓[0m[90m should reset state if component is shut down[0m

[0m  Journal[0m
[0m    connected to initialized graph[0m
[2K[0G    [32m  ✓[0m[90m should have just the initial transaction[0m
[0m    following basic graph changes[0m
[2K[0G    [32m  ✓[0m[90m should create one transaction per change[0m
[0m    pretty printing[0m
[2K[0G    [32m  ✓[0m[90m should be human readable[0m
[0m    jumping to revision[0m
[2K[0G    [32m  ✓[0m[90m should change the graph[0m
[0m    linear undo/redo[0m
[2K[0G    [32m  ✓[0m[90m undo should restore previous revision[0m
[2K[0G    [32m  ✓[0m[90m redo should apply the same change again[0m
[2K[0G    [32m  ✓[0m[90m undo should also work multiple revisions back[0m
[0m    undo/redo of metadata changes[0m
[2K[0G    [32m  ✓[0m[90m adding group[0m
[2K[0G    [32m  ✓[0m[90m undoing group add[0m
[2K[0G    [32m  ✓[0m[90m redoing group add[0m
[2K[0G    [32m  ✓[0m[90m changing group metadata adds revision[0m
[2K[0G    [32m  ✓[0m[90m undoing group metadata change[0m
[2K[0G    [32m  ✓[0m[90m redoing group metadata change[0m
[2K[0G    [32m  ✓[0m[90m setting node metadata[0m
[2K[0G    [32m  ✓[0m[90m undoing set node metadata[0m
[2K[0G    [32m  ✓[0m[90m redoing set node metadata[0m

[0m  Journalling of graph merges[0m
[0m    G -> B[0m
[2K[0G    [32m  ✓[0m[90m G starts out as A[0m
[2K[0G    [32m  ✓[0m[90m G and B starts out different[0m
[2K[0G    [32m  ✓[0m[90m merge should make G equivalent to B[0m
[2K[0G    [32m  ✓[0m[90m undoing merge should make G equivalent to A again[0m

[0m  NoFlo Network[0m
[0m    with an empty graph[0m
[2K[0G    [32m  ✓[0m[90m should initially be marked as stopped[0m
[2K[0G    [32m  ✓[0m[90m should initially have no processes[0m
[2K[0G    [32m  ✓[0m[90m should initially have to connections[0m
[2K[0G    [32m  ✓[0m[90m should initially have no IIPs[0m
[2K[0G    [32m  ✓[0m[90m should have reference to the graph[0m
[2K[0G    [32m  ✓[0m[90m should know its baseDir[0m
[2K[0G    [32m  ✓[0m[90m should have a ComponentLoader[0m
[2K[0G    [32m  ✓[0m[90m should have transmitted the baseDir to the Component Loader[0m
[2K[0G    [32m  ✓[0m[90m should be able to list components[0m
[2K[0G    [32m  ✓[0m[90m should have an uptime[0m
[0m      with new node[0m
[2K[0G      [32m  ✓[0m[90m should contain the node[0m
[2K[0G      [32m  ✓[0m[90m should have transmitted the node metadata to the process[0m
[2K[0G      [32m  ✓[0m[90m should not contain the node after removal[0m
[0m    with a simple graph[0m
[2K[0G    [32m  ✓[0m[90m should contain two processes[0m
[2K[0G    [32m  ✓[0m[90m the ports of the processes should know the node names[0m
[2K[0G    [32m  ✓[0m[90m should contain one connection[0m
[2K[0G    [32m  ✓[0m[90m should call callback when receiving data[0m
[2K[0G    [32m  ✓[0m[90m should have started in debug mode[0m
[2K[0G    [32m  ✓[0m[90m should emit a process-error when a component throws[0m
[0m      once started[0m
[2K[0G      [32m  ✓[0m[90m should be marked as started[0m
[0m      with a renamed node[0m
[2K[0G      [32m  ✓[0m[90m should have the process in a new location[0m
[2K[0G      [32m  ✓[0m[90m shouldn't have the process in the old location[0m
[2K[0G      [32m  ✓[0m[90m should have informed the ports of their new node name[0m
[0m      with process icon change[0m
[2K[0G      [32m  ✓[0m[90m should emit an icon event[0m
[0m      once stopped[0m
[2K[0G      [32m  ✓[0m[90m should be marked as stopped[0m
[0m    with nodes containing default ports[0m
[2K[0G    [32m  ✓[0m[90m should send default values to nodes without an edge[0m
[2K[0G    [32m  ✓[0m[90m should not send default values to nodes with an edge[0m
[2K[0G    [32m  ✓[0m[90m should not send default values to nodes with IIP[0m
[0m    Nodes are added first, then edges, then initializers (i.e. IIPs), and in order of definition order within each[0m
[2K[0G    [32m  ✓[0m[90m should add nodes, edges, and initials, in that order[0m
[0m    with an existing IIP[0m
[2K[0G    [32m  ✓[0m[90m should call the Callback with the original IIP value[0m
[2K[0G    [32m  ✓[0m[90m should allow removing the IIPs[0m
[2K[0G    [32m  ✓[0m[90m new IIPs to replace original ones should work correctly[0m
[0m      on stopping[0m
[2K[0G      [32m  ✓[0m[90m processes should be running before the stop call[0m
[2K[0G      [32m  ✓[0m[90m should emit the end event[0m
[2K[0G      [32m  ✓[0m[90m should have called the shutdown method of each process[0m
[0m    with a very large network[0m
[2K[0G    [32m  ✓[0m[90m should be able to connect without errors[0m[31m (4874ms)[0m

[0m  NoFlo interface[0m
[2K[0G  [32m  ✓[0m[90m should be able to tell whether it is running on browser[0m

[0m  Outport Port[0m
[0m    with addressable ports[0m
[2K[0G    [32m  ✓[0m[90m should be able to send to a specific port[0m
[2K[0G    [32m  ✓[0m[90m should be able to send to index 0[0m
[2K[0G    [32m  ✓[0m[90m should throw an error when sent data without address[0m
[2K[0G    [32m  ✓[0m[90m should throw an error when a specific port is requested with non-addressable port[0m
[2K[0G    [32m  ✓[0m[90m should give correct port index when detaching a connection[0m
[0m    with caching ports[0m
[2K[0G    [32m  ✓[0m[90m should repeat the previously sent value on attach event[0m
[2K[0G    [32m  ✓[0m[90m should support addressable ports[0m
[0m    with IP objects[0m
[2K[0G    [32m  ✓[0m[90m should send data IPs and substreams[0m
[2K[0G    [32m  ✓[0m[90m should send non-clonable objects by reference[0m
[2K[0G    [32m  ✓[0m[90m should clone clonable objects on fan-out[0m

[0m  Legacy Port[0m
[0m    Untyped port instance[0m
[2K[0G    [32m  ✓[0m[90m should be of type "all"[0m
[0m    Port instance[0m
[0m      initially[0m
[2K[0G      [32m  ✓[0m[90m should retain the given type[0m
[2K[0G      [32m  ✓[0m[90m should not have a name[0m
[2K[0G      [32m  ✓[0m[90m should not have a node name[0m
[2K[0G      [32m  ✓[0m[90m should return "Port" as identifier[0m
[0m      with given name and node[0m
[2K[0G      [32m  ✓[0m[90m should return correct ID[0m
[0m      without attached socket[0m
[2K[0G      [32m  ✓[0m[90m should not be attached initially[0m
[2K[0G      [32m  ✓[0m[90m should allow a connection[0m
[2K[0G      [32m  ✓[0m[90m should not be connected initially[0m
[2K[0G      [32m  ✓[0m[90m should not contain a socket initially[0m
[2K[0G      [32m  ✓[0m[90m should not allow connecting[0m
[2K[0G      [32m  ✓[0m[90m should not allow beginning groups[0m
[2K[0G      [32m  ✓[0m[90m should not allow sending data[0m
[2K[0G      [32m  ✓[0m[90m should not allow ending groups[0m
[2K[0G      [32m  ✓[0m[90m should not allow disconnecting[0m
[0m      with attached socket[0m
[2K[0G      [32m  ✓[0m[90m should emit an event[0m
[2K[0G      [32m  ✓[0m[90m should be marked as attached[0m
[2K[0G      [32m  ✓[0m[90m should not be connected initially[0m
[2K[0G      [32m  ✓[0m[90m should have a reference to the socket[0m
[2K[0G      [32m  ✓[0m[90m should allow other sockets to be attached[0m
[2K[0G      [32m  ✓[0m[90m should emit an event on detaching[0m
[2K[0G      [32m  ✓[0m[90m should still be attached[0m
[2K[0G      [32m  ✓[0m[90m should not be attached any longer[0m
[2K[0G      [32m  ✓[0m[90m should not contain a socket any longer[0m
[0m    Input port[0m
[2K[0G    [32m  ✓[0m[90m should emit connection events[0m
[2K[0G    [32m  ✓[0m[90m should be connected after that[0m
[2K[0G    [32m  ✓[0m[90m should emit begin group events[0m
[2K[0G    [32m  ✓[0m[90m should emit data events[0m
[2K[0G    [32m  ✓[0m[90m should emit end group events[0m
[2K[0G    [32m  ✓[0m[90m should emit disconnection events[0m
[2K[0G    [32m  ✓[0m[90m should not be connected after that[0m
[2K[0G    [32m  ✓[0m[90m should connect automatically when sending[0m
[0m    Output port[0m
[2K[0G    [32m  ✓[0m[90m should connect the socket[0m
[2K[0G    [32m  ✓[0m[90m should begin groups on the socket[0m
[2K[0G    [32m  ✓[0m[90m should send data to the socket[0m
[2K[0G    [32m  ✓[0m[90m should end groups on the socket[0m
[2K[0G    [32m  ✓[0m[90m should disconnect the socket[0m
[2K[0G    [32m  ✓[0m[90m should connect automatically when sending[0m

[0m  Graph component[0m
[0m    initially[0m
[2K[0G    [32m  ✓[0m[90m should be ready[0m
[2K[0G    [32m  ✓[0m[90m should not contain a network[0m
[2K[0G    [32m  ✓[0m[90m should not have a baseDir[0m
[2K[0G    [32m  ✓[0m[90m should only have the graph inport[0m
[0m    with JSON graph definition[0m
[2K[0G    [32m  ✓[0m[90m should emit a ready event after network has been loaded[0m
[2K[0G    [32m  ✓[0m[90m should expose available ports[0m
[2K[0G    [32m  ✓[0m[90m should update description from the graph[0m
[2K[0G    [32m  ✓[0m[90m should expose only exported ports when they exist[0m
[2K[0G    [32m  ✓[0m[90m should be able to run the graph[0m
[0m    with a Graph instance[0m
[2K[0G    [32m  ✓[0m[90m should emit a ready event after network has been loaded[0m
[2K[0G    [32m  ✓[0m[90m should expose available ports[0m
[2K[0G    [32m  ✓[0m[90m should be able to run the graph[0m
[0m    with a FBP file with INPORTs and OUTPORTs[0m
[2K[0G    [32m  ✓[0m[90m should emit a ready event after network has been loaded[0m
[2K[0G    [32m  ✓[0m[90m should expose available ports[0m[33m (46ms)[0m
[2K[0G    [32m  ✓[0m[90m should be able to run the graph[0m[33m (47ms)[0m
[0m    with a FBP file with legacy EXPORTS[0m
[2K[0G    [32m  ✓[0m[90m should emit a ready event after network has been loaded[0m[33m (47ms)[0m
[2K[0G    [32m  ✓[0m[90m should expose available ports[0m[33m (41ms)[0m
[2K[0G    [32m  ✓[0m[90m should have disambiguated the exported ports[0m[33m (42ms)[0m
[2K[0G    [32m  ✓[0m[90m should be able to run the graph[0m[33m (43ms)[0m
[0m    when a subgraph is used as a component[0m
[2K[0G    [32m  ✓[0m[90m should send defaults[0m
[2K[0G    [32m  ✓[0m[90m should send initials[0m
[2K[0G    [32m  ✓[0m[90m should not send defaults when an inport is attached externally[0m


[92m [0m[32m 411 passing[0m[90m (7s)[0m
[36m [0m[36m 9 pending[0m

