Skip to content

44 make process project show up for cell level #239

44 make process project show up for cell level

44 make process project show up for cell level #239

This check has been archived and is scheduled for deletion. Learn more about checks retention
GitHub Actions / jest-github-action failed Nov 8, 2023 in 0s

Jest tests failed

Failed tests: 9/450. Failed suites: 9/102.

Details

  ● test for pipeline services › Create QC pipeline works

    expect(received).toMatchSnapshot()

    Snapshot name: `test for pipeline services Create QC pipeline works 3`

    - Snapshot  - 0
    + Received  + 6

    @@ -4,9 +4,15 @@
            "experiment_id": "testExperimentId",
            "pipeline_type": "qc",
          },
          Object {
            "execution_arn": "test-machine",
    +       "last_pipeline_params": Object {
    +         "cellMetadataId": "2c5983db-c690-4ed3-a4ad-bb12b065d60d",
    +       },
    +       "retry_params": Object {
    +         "clusteringShouldRun": true,
    +       },
            "state_machine_arn": "test-machine",
          },
        ],
      ]

      142 |
      143 |     expect(experimentInstance.findById).toHaveBeenCalledWith('testExperimentId');
    > 144 |     expect(experimentExecutionInstance.upsert.mock.calls).toMatchSnapshot();
          |                                                           ^
      145 |
      146 |     expect(cellLevelMetaInstance.getMetadataByExperimentIds).toHaveBeenCalledWith(['testExperimentId']);
      147 |

      at Object.<anonymous> (tests/api.v2/helpers/pipeline/pipelineConstruct.test.js:144:59)

  ● test for pipeline services › Create QC pipeline works

    expect(received).toMatchSnapshot(hint)

    Snapshot name: `test for pipeline services Create QC pipeline works: experimentInstance processingConfig update 1`

    - Snapshot  - 2
    + Received  + 7

    @@ -107,18 +107,23 @@
              "doubletScores": Object {
                "oneSample": Object {
                  "defaultFilterSettings": Object {
                    "oneSetting": 1,
                  },
    +             "enabled": true,
                  "filterSettings": Object {
    -               "oneSetting": 7,
    +               "oneSetting": 1,
                  },
                  "recomputeDoubletScore": true,
                },
                "otherSample": Object {
    +             "defaultFilterSettings": Object {
    +               "oneSetting": 1,
    +             },
    +             "enabled": true,
                  "filterSettings": Object {
    -               "oneSetting": 15,
    +               "oneSetting": 1,
                  },
                  "recomputeDoubletScore": true,
                },
              },
              "mitochondrialContent": Object {

      148 |     // Updates the processing config with the new changes
      149 |     expect(experimentInstance.updateById).toHaveBeenCalledTimes(1);
    > 150 |     expect(experimentInstance.updateById.mock.calls).toMatchSnapshot('experimentInstance processingConfig update');
          |                                                      ^
      151 |
      152 |     expect(createActivitySpy).toHaveBeenCalled();
      153 |     expect(startExecutionSpy).toHaveBeenCalled();

      at Object.<anonymous> (tests/api.v2/helpers/pipeline/pipelineConstruct.test.js:150:54)

  ● test for pipeline services › Parses QC processingConfig with cell level metadata file correctly

    expect(received).toMatchSnapshot()

    Snapshot name: `test for pipeline services Parses QC processingConfig with cell level metadata file correctly 1`

    - Snapshot  -  2
    + Received  + 11

    @@ -21,10 +21,11 @@
                  "States": Object {
                    "CellSizeDistributionFilter": Object {
                      "End": true,
                      "HeartbeatSeconds": 90,
                      "Parameters": Object {
    +                   "clusteringShouldRun": true,
                        "config": Object {
                          "oneSample": Object {
                            "auto": true,
                            "enabled": false,
                            "filterSettings": Object {
    @@ -77,10 +78,11 @@
                  "States": Object {
                    "ClassifierFilter": Object {
                      "End": true,
                      "HeartbeatSeconds": 90,
                      "Parameters": Object {
    +                   "clusteringShouldRun": true,
                        "config": Object {
                          "oneSample": Object {
                            "auto": true,
                            "enabled": false,
                            "filterSettings": Object {
    @@ -128,10 +130,11 @@
                  },
                ],
                "HeartbeatSeconds": 90,
                "Next": "EndOfPipeline",
                "Parameters": Object {
    +             "clusteringShouldRun": true,
                  "config": Object {
                    "clusteringSettings": Object {
                      "method": "louvain",
                      "methodSettings": Object {
                        "louvain": Object {
    @@ -178,10 +181,11 @@
                  },
                ],
                "HeartbeatSeconds": 90,
                "Next": "ConfigureEmbedding",
                "Parameters": Object {
    +             "clusteringShouldRun": true,
                  "config": Object {
                    "dataIntegration": Object {
                      "method": "harmony",
                      "methodSettings": Object {
                        "fastmnn": Object {
    @@ -238,20 +242,23 @@
                  "States": Object {
                    "DoubletScoresFilter": Object {
                      "End": true,
                      "HeartbeatSeconds": 90,
                      "Parameters": Object {
    +                   "clusteringShouldRun": true,
                        "config": Object {
                          "oneSample": Object {
    +                       "enabled": true,
                            "filterSettings": Object {
    -                         "oneSetting": 7,
    +                         "oneSetting": 1,
                            },
                            "recomputeDoubletScore": true,
                          },
                          "otherSample": Object {
    +                       "enabled": true,
                            "filterSettings": Object {
    -                         "oneSetting": 15,
    +                         "oneSetting": 1,
                            },
                            "recomputeDoubletScore": true,
                          },
                        },
                        "experimentId": "testExperimentId",
    @@ -312,10 +319,11 @@
                  "States": Object {
                    "MitochondrialContentFilter": Object {
                      "End": true,
                      "HeartbeatSeconds": 90,
                      "Parameters": Object {
    +                   "clusteringShouldRun": true,
                        "config": Object {
                          "oneSample": Object {
                            "auto": true,
                            "enabled": true,
                            "filterSettings": Object {
    @@ -378,10 +386,11 @@
                  "States": Object {
                    "NumGenesVsNumUmisFilter": Object {
                      "End": true,
                      "HeartbeatSeconds": 90,
                      "Parameters": Object {
    +                   "clusteringShouldRun": true,
                        "config": Object {
                          "oneSample": Object {
                            "auto": true,
                            "enabled": true,
                            "filterSettings": Object {

      213 |
      214 |     await createQCPipeline('testExperimentId', processingConfigUpdate);
    > 215 |     expect(createStateMachineSpy.mock.results).toMatchSnapshot();
          |                                                ^
      216 |     expect(cellLevelMetaInstance.getMetadataByExperimentIds).toHaveBeenCalledWith(['testExperimentId']);
      217 |   });
      218 |

      at Object.<anonymous> (tests/api.v2/helpers/pipeline/pipelineConstruct.test.js:215:48)

  ● test for pipeline services › Parses QC processingConfig with no cell level metadata file correctly

    expect(received).toMatchSnapshot()

    Snapshot name: `test for pipeline services Parses QC processingConfig with no cell level metadata file correctly 1`

    - Snapshot  -  2
    + Received  + 11

    @@ -21,10 +21,11 @@
                  "States": Object {
                    "CellSizeDistributionFilter": Object {
                      "End": true,
                      "HeartbeatSeconds": 90,
                      "Parameters": Object {
    +                   "clusteringShouldRun": true,
                        "config": Object {
                          "oneSample": Object {
                            "auto": true,
                            "enabled": false,
                            "filterSettings": Object {
    @@ -77,10 +78,11 @@
                  "States": Object {
                    "ClassifierFilter": Object {
                      "End": true,
                      "HeartbeatSeconds": 90,
                      "Parameters": Object {
    +                   "clusteringShouldRun": true,
                        "config": Object {
                          "oneSample": Object {
                            "auto": true,
                            "enabled": false,
                            "filterSettings": Object {
    @@ -128,10 +130,11 @@
                  },
                ],
                "HeartbeatSeconds": 90,
                "Next": "EndOfPipeline",
                "Parameters": Object {
    +             "clusteringShouldRun": true,
                  "config": Object {
                    "clusteringSettings": Object {
                      "method": "louvain",
                      "methodSettings": Object {
                        "louvain": Object {
    @@ -178,10 +181,11 @@
                  },
                ],
                "HeartbeatSeconds": 90,
                "Next": "ConfigureEmbedding",
                "Parameters": Object {
    +             "clusteringShouldRun": true,
                  "config": Object {
                    "dataIntegration": Object {
                      "method": "harmony",
                      "methodSettings": Object {
                        "fastmnn": Object {
    @@ -238,20 +242,23 @@
                  "States": Object {
                    "DoubletScoresFilter": Object {
                      "End": true,
                      "HeartbeatSeconds": 90,
                      "Parameters": Object {
    +                   "clusteringShouldRun": true,
                        "config": Object {
                          "oneSample": Object {
    +                       "enabled": true,
                            "filterSettings": Object {
    -                         "oneSetting": 7,
    +                         "oneSetting": 1,
                            },
                            "recomputeDoubletScore": true,
                          },
                          "otherSample": Object {
    +                       "enabled": true,
                            "filterSettings": Object {
    -                         "oneSetting": 15,
    +                         "oneSetting": 1,
                            },
                            "recomputeDoubletScore": true,
                          },
                        },
                        "experimentId": "testExperimentId",
    @@ -312,10 +319,11 @@
                  "States": Object {
                    "MitochondrialContentFilter": Object {
                      "End": true,
                      "HeartbeatSeconds": 90,
                      "Parameters": Object {
    +                   "clusteringShouldRun": true,
                        "config": Object {
                          "oneSample": Object {
                            "auto": true,
                            "enabled": true,
                            "filterSettings": Object {
    @@ -378,10 +386,11 @@
                  "States": Object {
                    "NumGenesVsNumUmisFilter": Object {
                      "End": true,
                      "HeartbeatSeconds": 90,
                      "Parameters": Object {
    +                   "clusteringShouldRun": true,
                        "config": Object {
                          "oneSample": Object {
                            "auto": true,
                            "enabled": true,
                            "filterSettings": Object {

      267 |
      268 |     await createQCPipeline('testExperimentId', processingConfigUpdate);
    > 269 |     expect(createStateMachineSpy.mock.results).toMatchSnapshot();
          |                                                ^
      270 |     expect(cellLevelMetaInstance.getMetadataByExperimentIds).toHaveBeenCalledWith(['testExperimentId']);
      271 |   });
      272 |

      at Object.<anonymous> (tests/api.v2/helpers/pipeline/pipelineConstruct.test.js:269:48)

  ● test for pipeline services › Create Subset pipeline works

    expect(received).toMatchSnapshot(hint)

    Snapshot name: `test for pipeline services Create Subset pipeline works: createStateMachineSpy calls 1`

    - Snapshot  - 1
    + Received  + 1

    @@ -1,9 +1,9 @@
      Array [
        Array [
          Object {
    -       "definition": "{\"Comment\":\"Subset Pipeline for clusterEnv 'test'\",\"StartAt\":\"RequestPod\",\"States\":{\"RequestPod\":{\"ResultPath\":null,\"Next\":\"WaitForPod\",\"Comment\":\"Send a message through SNS so that the API assigns a pod to the pipeline\",\"Type\":\"Task\",\"Resource\":\"arn:aws:states:::sns:publish\",\"Parameters\":{\"TopicArn\":\"arn:aws:sns:eu-west-1:000000000000:work-results-test-default-v2\",\"Message\":\"{\\\"taskName\\\":\\\"assignPodToPipeline\\\",\\\"experimentId\\\":\\\"toExperimentId\\\",\\\"apiUrl\\\":\\\"test-public-api-url\\\",\\\"input\\\":{\\\"experimentId\\\":\\\"toExperimentId\\\",\\\"sandboxId\\\":\\\"default\\\",\\\"activityId\\\":\\\"pipeline-test-mock-uuid\\\",\\\"processName\\\":\\\"subset\\\"}}\",\"MessageAttributes\":{\"type\":{\"DataType\":\"String\",\"StringValue\":\"PipelineResponse\"}}}},\"WaitForPod\":{\"ResultPath\":null,\"Next\":\"SubsetSeurat\",\"Type\":\"Map\",\"ItemsPath\":\"$.retries\",\"MaxConcurrency\":1,\"Retry\":[{\"ErrorEquals\":[\"NoPodAssigned\"],\"IntervalSeconds\":1,\"MaxAttempts\":13,\"BackoffRate\":1.5}],\"Iterator\":{\"StartAt\":\"GetAssignedPod\",\"States\":{\"GetAssignedPod\":{\"Next\":\"IsPodAssigned\",\"Type\":\"Task\",\"Comment\":\"Retrieves first unassigned and running pipeline pod.\",\"Resource\":\"arn:aws:states:::eks:call\",\"Parameters\":{\"ClusterName\":\"biomage-test\",\"CertificateAuthority\":\"AAAAAAAAAAA\",\"Endpoint\":\"https://test-endpoint.me/fgh\",\"Method\":\"GET\",\"Path\":\"/api/v1/namespaces/pipeline-test-namespace/pods\",\"QueryParameters\":{\"labelSelector\":[\"type=pipeline,activityId=pipeline-test-mock-uuid\"]}}},\"IsPodAssigned\":{\"Type\":\"Choice\",\"Comment\":\"Redirects to an error state if the pipeline pod is not assigned yet.\",\"Choices\":[{\"Variable\":\"$.ResponseBody.items[0]\",\"IsPresent\":false,\"Next\":\"NoPodAssigned\"}],\"Default\":\"ReadyToRun\"},\"NoPodAssigned\":{\"Type\":\"Fail\",\"Cause\":\"No available and running pipeline pods.\",\"Error\":\"NoPodAssigned\"},\"ReadyToRun\":{\"Type\":\"Pass\",\"End\":true}}}},\"SubsetSeurat\":{\"Next\":\"PrepareExperiment\",\"Type\":\"Task\",\"Resource\":\"arn:aws:states:eu-west-1:000000000000:activity:pipeline-test-mock-uuid\",\"ResultPath\":null,\"TimeoutSeconds\":10800,\"HeartbeatSeconds\":90,\"Parameters\":{\"experimentId\":\"toExperimentId\",\"taskName\":\"subsetSeurat\",\"processName\":\"subset\",\"server\":\"remoter-server-toExperimentId.pipeline-test-namespace.svc.cluster.local\",\"ignoreSslCert\":false,\"parentExperimentId\":\"fromExperimentId\",\"subsetExperimentId\":\"toExperimentId\",\"cellSetKeys\":[\"louvain-1\",\"louvain-2\"],\"parentProcessingConfig\":{\"classifier\":{\"oneSample\":{\"auto\":true,\"enabled\":false,\"prefiltered\":true,\"filterSettings\":{\"FDR\":0.01},\"defaultFilterSettings\":{\"FDR\":0.01}},\"otherSample\":{\"auto\":true,\"enabled\":false,\"prefiltered\":true,\"filterSettings\":{\"FDR\":0.01},\"defaultFilterSettings\":{\"FDR\":0.01}}},\"doubletScores\":{\"oneSample\":{\"defaultFilterSettings\":{\"oneSetting\":1},\"filterSettings\":{\"oneSetting\":7}},\"otherSample\":{\"filterSettings\":{\"oneSetting\":15}}},\"dataIntegration\":{\"dataIntegration\":{\"method\":\"harmony\",\"methodSettings\":{\"fastmnn\":{\"numGenes\":2000,\"normalisation\":\"logNormalize\"},\"harmony\":{\"numGenes\":2000,\"normalisation\":\"logNormalize\"},\"seuratv4\":{\"numGenes\":2000,\"normalisation\":\"logNormalize\"},\"unisample\":{\"numGenes\":2000,\"normalisation\":\"logNormalize\"}}},\"dimensionalityReduction\":{\"method\":\"rpca\",\"numPCs\":30,\"excludeGeneCategories\":[]}},\"numGenesVsNumUmis\":{\"oneSample\":{\"auto\":true,\"enabled\":true,\"filterSettings\":{\"regressionType\":\"linear\",\"regressionTypeSettings\":{\"linear\":{\"p.level\":0.001},\"spline\":{\"p.level\":0.001}}},\"defaultFilterSettings\":{\"regressionType\":\"linear\",\"regressionTypeSettings\":{\"linear\":{\"p.level\":0.001},\"spline\":{\"p.level\":0.001}}}},\"otherSample\":{\"auto\":true,\"enabled\":true,\"filterSettings\":{\"regressionType\":\"linear\",\"regressionTypeSettings\":{\"linear\":{\"p.level\":0.001},\"spline\":{\"p.level\":0.001}}},\"defaultFilterSettings\":{\"regressionType\":\"linear\",\"regressionTypeSettings\":{\"linear\":{\"p.level\":0.001},\"spline\":{\"p.level\":0.001}}}}},\"configureEmbedding\":{\"embeddingSettings\":{\"method\":\"umap\",\"methodSettings\":{\"tsne\":{\"perplexity\":30,\"learningRate\":200},\"umap\":{\"distanceMetric\":\"cosine\",\"minimumDistance\":0.3}}},\"clusteringSettings\":{\"method\":\"louvain\",\"methodSettings\":{\"louvain\":{\"resolution\":0.8}}}},\"cellSizeDistribution\":{\"oneSample\":{\"auto\":true,\"enabled\":false,\"filterSettings\":{\"binStep\":200,\"minCellSize\":1044},\"defaultFilterSettings\":{\"binStep\":200,\"minCellSize\":1044}},\"otherSample\":{\"auto\":true,\"enabled\":false,\"filterSettings\":{\"binStep\":200,\"minCellSize\":1044},\"defaultFilterSettings\":{\"binStep\":200,\"minCellSize\":1044}}},\"mitochondrialContent\":{\"oneSample\":{\"auto\":true,\"enabled\":true,\"filterSettings\":{\"method\":\"absoluteThreshold\",\"methodSettings\":{\"absoluteThreshold\":{\"binStep\":0.3,\"maxFraction\":0.07181329}}},\"defaultFilterSettings\":{\"method\":\"absoluteThreshold\",\"methodSettings\":{\"absoluteThreshold\":{\"binStep\":0.3,\"maxFraction\":0.07181329}}}},\"otherSample\":{\"auto\":true,\"enabled\":true,\"filterSettings\":{\"method\":\"absoluteThreshold\",\"methodSettings\":{\"absoluteThreshold\":{\"binStep\":0.3,\"maxFraction\":0.07181329}}},\"defaultFilterSettings\":{\"method\":\"absoluteThreshold\",\"methodSettings\":{\"absoluteThreshold\":{\"binStep\":0.3,\"maxFraction\":0.07181329}}}}}}},\"Catch\":[{\"ErrorEquals\":[\"States.ALL\"],\"ResultPath\":\"$.errorInfo\",\"Next\":\"HandleError\"}]},\"PrepareExperiment\":{\"Next\":\"UploadToAWS\",\"Type\":\"Task\",\"Resource\":\"arn:aws:states:eu-west-1:000000000000:activity:pipeline-test-mock-uuid\",\"ResultPath\":null,\"TimeoutSeconds\":10800,\"HeartbeatSeconds\":90,\"Parameters\":{\"experimentId\":\"toExperimentId\",\"taskName\":\"prepareExperiment\",\"processName\":\"subset\",\"server\":\"remoter-server-toExperimentId.pipeline-test-namespace.svc.cluster.local\",\"ignoreSslCert\":false,\"experimentName\":\"toExperimentName\",\"authJWT\":\"mockAuthJWT\"},\"Catch\":[{\"ErrorEquals\":[\"States.ALL\"],\"ResultPath\":\"$.errorInfo\",\"Next\":\"HandleError\"}]},\"UploadToAWS\":{\"Next\":\"EndOfPipeline\",\"Type\":\"Task\",\"Resource\":\"arn:aws:states:eu-west-1:000000000000:activity:pipeline-test-mock-uuid\",\"ResultPath\":null,\"TimeoutSeconds\":10800,\"HeartbeatSeconds\":90,\"Parameters\":{\"experimentId\":\"toExperimentId\",\"taskName\":\"uploadToAWS\",\"processName\":\"subset\",\"server\":\"remoter-server-toExperimentId.pipeline-test-namespace.svc.cluster.local\",\"ignoreSslCert\":false,\"experimentName\":\"toExperimentName\",\"authJWT\":\"mockAuthJWT\"},\"Catch\":[{\"ErrorEquals\":[\"States.ALL\"],\"ResultPath\":\"$.errorInfo\",\"Next\":\"HandleError\"}]},\"HandleError\":{\"Next\":\"MarkAsFailed\",\"Type\":\"Task\",\"Resource\":\"arn:aws:states:::sns:publish\",\"Parameters\":{\"TopicArn\":\"arn:aws:sns:eu-west-1:000000000000:work-results-test-default-v2\",\"Message.$\":\"States.Format('\\\\{\\\"taskName\\\":\\\"pipelineError\\\",\\\"experimentId\\\":\\\"toExperimentId\\\",\\\"apiUrl\\\":\\\"test-public-api-url\\\",\\\"input\\\":\\\\{\\\"experimentId\\\":\\\"toExperimentId\\\",\\\"error\\\":\\\"{}\\\",\\\"taskName\\\":\\\"pipelineError\\\",\\\"sandboxId\\\":\\\"default\\\",\\\"activityId\\\":\\\"pipeline-test-mock-uuid\\\",\\\"processName\\\":\\\"subset\\\"\\\\}\\\\}', $.errorInfo.Error)\",\"MessageAttributes\":{\"type\":{\"DataType\":\"String\",\"StringValue\":\"PipelineResponse\"}}}},\"MarkAsFailed\":{\"Type\":\"Fail\"},\"EndOfPipeline\":{\"Type\":\"Pass\",\"End\":true}}}",
    +       "definition": "{\"Comment\":\"Subset Pipeline for clusterEnv 'test'\",\"StartAt\":\"RequestPod\",\"States\":{\"RequestPod\":{\"ResultPath\":null,\"Next\":\"WaitForPod\",\"Comment\":\"Send a message through SNS so that the API assigns a pod to the pipeline\",\"Type\":\"Task\",\"Resource\":\"arn:aws:states:::sns:publish\",\"Parameters\":{\"TopicArn\":\"arn:aws:sns:eu-west-1:000000000000:work-results-test-default-v2\",\"Message\":\"{\\\"taskName\\\":\\\"assignPodToPipeline\\\",\\\"experimentId\\\":\\\"toExperimentId\\\",\\\"apiUrl\\\":\\\"test-public-api-url\\\",\\\"input\\\":{\\\"experimentId\\\":\\\"toExperimentId\\\",\\\"sandboxId\\\":\\\"default\\\",\\\"activityId\\\":\\\"pipeline-test-mock-uuid\\\",\\\"processName\\\":\\\"subset\\\"}}\",\"MessageAttributes\":{\"type\":{\"DataType\":\"String\",\"StringValue\":\"PipelineResponse\"}}}},\"WaitForPod\":{\"ResultPath\":null,\"Next\":\"SubsetSeurat\",\"Type\":\"Map\",\"ItemsPath\":\"$.retries\",\"MaxConcurrency\":1,\"Retry\":[{\"ErrorEquals\":[\"NoPodAssigned\"],\"IntervalSeconds\":1,\"MaxAttempts\":13,\"BackoffRate\":1.5}],\"Iterator\":{\"StartAt\":\"GetAssignedPod\",\"States\":{\"GetAssignedPod\":{\"Next\":\"IsPodAssigned\",\"Type\":\"Task\",\"Comment\":\"Retrieves first unassigned and running pipeline pod.\",\"Resource\":\"arn:aws:states:::eks:call\",\"Parameters\":{\"ClusterName\":\"biomage-test\",\"CertificateAuthority\":\"AAAAAAAAAAA\",\"Endpoint\":\"https://test-endpoint.me/fgh\",\"Method\":\"GET\",\"Path\":\"/api/v1/namespaces/pipeline-test-namespace/pods\",\"QueryParameters\":{\"labelSelector\":[\"type=pipeline,activityId=pipeline-test-mock-uuid\"]}}},\"IsPodAssigned\":{\"Type\":\"Choice\",\"Comment\":\"Redirects to an error state if the pipeline pod is not assigned yet.\",\"Choices\":[{\"Variable\":\"$.ResponseBody.items[0]\",\"IsPresent\":false,\"Next\":\"NoPodAssigned\"}],\"Default\":\"ReadyToRun\"},\"NoPodAssigned\":{\"Type\":\"Fail\",\"Cause\":\"No available and running pipeline pods.\",\"Error\":\"NoPodAssigned\"},\"ReadyToRun\":{\"Type\":\"Pass\",\"End\":true}}}},\"SubsetSeurat\":{\"Next\":\"PrepareExperiment\",\"Type\":\"Task\",\"Resource\":\"arn:aws:states:eu-west-1:000000000000:activity:pipeline-test-mock-uuid\",\"ResultPath\":null,\"TimeoutSeconds\":10800,\"HeartbeatSeconds\":90,\"Parameters\":{\"experimentId\":\"toExperimentId\",\"taskName\":\"subsetSeurat\",\"processName\":\"subset\",\"server\":\"remoter-server-toExperimentId.pipeline-test-namespace.svc.cluster.local\",\"ignoreSslCert\":false,\"parentExperimentId\":\"fromExperimentId\",\"subsetExperimentId\":\"toExperimentId\",\"cellSetKeys\":[\"louvain-1\",\"louvain-2\"],\"parentProcessingConfig\":{\"classifier\":{\"oneSample\":{\"auto\":true,\"enabled\":false,\"prefiltered\":true,\"filterSettings\":{\"FDR\":0.01},\"defaultFilterSettings\":{\"FDR\":0.01}},\"otherSample\":{\"auto\":true,\"enabled\":false,\"prefiltered\":true,\"filterSettings\":{\"FDR\":0.01},\"defaultFilterSettings\":{\"FDR\":0.01}}},\"doubletScores\":{\"oneSample\":{\"enabled\":true,\"filterSettings\":{\"oneSetting\":1},\"defaultFilterSettings\":{\"oneSetting\":1},\"recomputeDoubletScore\":true},\"otherSample\":{\"enabled\":true,\"filterSettings\":{\"oneSetting\":1},\"defaultFilterSettings\":{\"oneSetting\":1},\"recomputeDoubletScore\":true}},\"dataIntegration\":{\"dataIntegration\":{\"method\":\"harmony\",\"methodSettings\":{\"fastmnn\":{\"numGenes\":2000,\"normalisation\":\"logNormalize\"},\"harmony\":{\"numGenes\":2000,\"normalisation\":\"logNormalize\"},\"seuratv4\":{\"numGenes\":2000,\"normalisation\":\"logNormalize\"},\"unisample\":{\"numGenes\":2000,\"normalisation\":\"logNormalize\"}}},\"dimensionalityReduction\":{\"method\":\"rpca\",\"numPCs\":30,\"excludeGeneCategories\":[]}},\"numGenesVsNumUmis\":{\"oneSample\":{\"auto\":true,\"enabled\":true,\"filterSettings\":{\"regressionType\":\"linear\",\"regressionTypeSettings\":{\"linear\":{\"p.level\":0.001},\"spline\":{\"p.level\":0.001}}},\"defaultFilterSettings\":{\"regressionType\":\"linear\",\"regressionTypeSettings\":{\"linear\":{\"p.level\":0.001},\"spline\":{\"p.level\":0.001}}}},\"otherSample\":{\"auto\":true,\"enabled\":true,\"filterSettings\":{\"regressionType\":\"linear\",\"regressionTypeSettings\":{\"linear\":{\"p.level\":0.001},\"spline\":{\"p.level\":0.001}}},\"defaultFilterSettings\":{\"regressionType\":\"linear\",\"regressionTypeSettings\":{\"linear\":{\"p.level\":0.001},\"spline\":{\"p.level\":0.001}}}}},\"configureEmbedding\":{\"embeddingSettings\":{\"method\":\"umap\",\"methodSettings\":{\"tsne\":{\"perplexity\":30,\"learningRate\":200},\"umap\":{\"distanceMetric\":\"cosine\",\"minimumDistance\":0.3}}},\"clusteringSettings\":{\"method\":\"louvain\",\"methodSettings\":{\"louvain\":{\"resolution\":0.8}}}},\"cellSizeDistribution\":{\"oneSample\":{\"auto\":true,\"enabled\":false,\"filterSettings\":{\"binStep\":200,\"minCellSize\":1044},\"defaultFilterSettings\":{\"binStep\":200,\"minCellSize\":1044}},\"otherSample\":{\"auto\":true,\"enabled\":false,\"filterSettings\":{\"binStep\":200,\"minCellSize\":1044},\"defaultFilterSettings\":{\"binStep\":200,\"minCellSize\":1044}}},\"mitochondrialContent\":{\"oneSample\":{\"auto\":true,\"enabled\":true,\"filterSettings\":{\"method\":\"absoluteThreshold\",\"methodSettings\":{\"absoluteThreshold\":{\"binStep\":0.3,\"maxFraction\":0.07181329}}},\"defaultFilterSettings\":{\"method\":\"absoluteThreshold\",\"methodSettings\":{\"absoluteThreshold\":{\"binStep\":0.3,\"maxFraction\":0.07181329}}}},\"otherSample\":{\"auto\":true,\"enabled\":true,\"filterSettings\":{\"method\":\"absoluteThreshold\",\"methodSettings\":{\"absoluteThreshold\":{\"binStep\":0.3,\"maxFraction\":0.07181329}}},\"defaultFilterSettings\":{\"method\":\"absoluteThreshold\",\"methodSettings\":{\"absoluteThreshold\":{\"binStep\":0.3,\"maxFraction\":0.07181329}}}}}}},\"Catch\":[{\"ErrorEquals\":[\"States.ALL\"],\"ResultPath\":\"$.errorInfo\",\"Next\":\"HandleError\"}]},\"PrepareExperiment\":{\"Next\":\"UploadToAWS\",\"Type\":\"Task\",\"Resource\":\"arn:aws:states:eu-west-1:000000000000:activity:pipeline-test-mock-uuid\",\"ResultPath\":null,\"TimeoutSeconds\":10800,\"HeartbeatSeconds\":90,\"Parameters\":{\"experimentId\":\"toExperimentId\",\"taskName\":\"prepareExperiment\",\"processName\":\"subset\",\"server\":\"remoter-server-toExperimentId.pipeline-test-namespace.svc.cluster.local\",\"ignoreSslCert\":false,\"experimentName\":\"toExperimentName\",\"authJWT\":\"mockAuthJWT\"},\"Catch\":[{\"ErrorEquals\":[\"States.ALL\"],\"ResultPath\":\"$.errorInfo\",\"Next\":\"HandleError\"}]},\"UploadToAWS\":{\"Next\":\"EndOfPipeline\",\"Type\":\"Task\",\"Resource\":\"arn:aws:states:eu-west-1:000000000000:activity:pipeline-test-mock-uuid\",\"ResultPath\":null,\"TimeoutSeconds\":10800,\"HeartbeatSeconds\":90,\"Parameters\":{\"experimentId\":\"toExperimentId\",\"taskName\":\"uploadToAWS\",\"processName\":\"subset\",\"server\":\"remoter-server-toExperimentId.pipeline-test-namespace.svc.cluster.local\",\"ignoreSslCert\":false,\"experimentName\":\"toExperimentName\",\"authJWT\":\"mockAuthJWT\"},\"Catch\":[{\"ErrorEquals\":[\"States.ALL\"],\"ResultPath\":\"$.errorInfo\",\"Next\":\"HandleError\"}]},\"HandleError\":{\"Next\":\"MarkAsFailed\",\"Type\":\"Task\",\"Resource\":\"arn:aws:states:::sns:publish\",\"Parameters\":{\"TopicArn\":\"arn:aws:sns:eu-west-1:000000000000:work-results-test-default-v2\",\"Message.$\":\"States.Format('\\\\{\\\"taskName\\\":\\\"pipelineError\\\",\\\"experimentId\\\":\\\"toExperimentId\\\",\\\"apiUrl\\\":\\\"test-public-api-url\\\",\\\"input\\\":\\\\{\\\"experimentId\\\":\\\"toExperimentId\\\",\\\"error\\\":\\\"{}\\\",\\\"taskName\\\":\\\"pipelineError\\\",\\\"sandboxId\\\":\\\"default\\\",\\\"activityId\\\":\\\"pipeline-test-mock-uuid\\\",\\\"processName\\\":\\\"subset\\\"\\\\}\\\\}', $.errorInfo.Error)\",\"MessageAttributes\":{\"type\":{\"DataType\":\"String\",\"StringValue\":\"PipelineResponse\"}}}},\"MarkAsFailed\":{\"Type\":\"Fail\"},\"EndOfPipeline\":{\"Type\":\"Pass\",\"End\":true}}}",
            "loggingConfiguration": Object {
              "level": "OFF",
            },
            "name": "biomage-subset-test-f3880dbb8507da8b0f158c0216a7d7189670e6ca",
            "roleArn": "arn:aws:iam::000000000000:role/state-machine-role-test",

      438 |     expect(describeClusterSpy).toMatchSnapshot();
      439 |
    > 440 |     expect(createStateMachineSpy.mock.calls).toMatchSnapshot('createStateMachineSpy calls');
          |                                              ^
      441 |     expect(createStateMachineSpy.mock.results).toMatchSnapshot('createStateMachineSpy results');
      442 |
      443 |     expect(createActivitySpy).toHaveBeenCalled();

      at Object.<anonymous> (tests/api.v2/helpers/pipeline/pipelineConstruct.test.js:440:46)

  ● gem2sResponse › Starts a QC run when gem2s finishes

    expect(received).toMatchSnapshot()

    Snapshot name: `gem2sResponse Starts a QC run when gem2s finishes 2`

    - Snapshot  -   1
    + Received  + 146

      Array [
        Array [
          "mockExperimentId",
    -     Array [],
    +     Object {
    +       "cellSizeDistribution": Object {
    +         "fc68aefc-c3ca-467f-8589-f1dbaaac1c1e": Object {
    +           "auto": true,
    +           "defaultFilterSettings": Object {
    +             "binStep": 200,
    +             "minCellSize": 1044,
    +           },
    +           "enabled": false,
    +           "filterSettings": Object {
    +             "binStep": 200,
    +             "minCellSize": 1044,
    +           },
    +         },
    +       },
    +       "classifier": Object {
    +         "fc68aefc-c3ca-467f-8589-f1dbaaac1c1e": Object {
    +           "auto": true,
    +           "defaultFilterSettings": Object {
    +             "FDR": 0.02,
    +           },
    +           "enabled": false,
    +           "filterSettings": Object {
    +             "FDR": 0.01,
    +           },
    +           "prefiltered": true,
    +         },
    +       },
    +       "configureEmbedding": Object {
    +         "clusteringSettings": Object {
    +           "method": "louvain",
    +           "methodSettings": Object {
    +             "louvain": Object {
    +               "resolution": 0.8,
    +             },
    +           },
    +         },
    +         "embeddingSettings": Object {
    +           "method": "umap",
    +           "methodSettings": Object {
    +             "tsne": Object {
    +               "learningRate": 200,
    +               "perplexity": 30,
    +             },
    +             "umap": Object {
    +               "distanceMetric": "cosine",
    +               "minimumDistance": 0.3,
    +             },
    +           },
    +         },
    +       },
    +       "dataIntegration": Object {
    +         "dataIntegration": Object {
    +           "method": "harmony",
    +           "methodSettings": Object {
    +             "fastmnn": Object {
    +               "normalisation": "logNormalize",
    +               "numGenes": 2000,
    +             },
    +             "harmony": Object {
    +               "normalisation": "logNormalize",
    +               "numGenes": 2000,
    +             },
    +             "seuratv4": Object {
    +               "normalisation": "logNormalize",
    +               "numGenes": 2000,
    +             },
    +             "unisample": Object {
    +               "normalisation": "logNormalize",
    +               "numGenes": 2000,
    +             },
    +           },
    +         },
    +         "dimensionalityReduction": Object {
    +           "excludeGeneCategories": Array [],
    +           "method": "rpca",
    +           "numPCs": 30,
    +         },
    +       },
    +       "doubletScores": Object {
    +         "fc68aefc-c3ca-467f-8589-f1dbaaac1c1e": Object {
    +           "auto": true,
    +           "defaultFilterSettings": Object {
    +             "binStep": 0.05,
    +             "probabilityThreshold": 0.6569474,
    +           },
    +           "enabled": true,
    +           "filterSettings": Object {
    +             "binStep": 0.02,
    +             "probabilityThreshold": 0.6569474,
    +           },
    +         },
    +       },
    +       "mitochondrialContent": Object {
    +         "fc68aefc-c3ca-467f-8589-f1dbaaac1c1e": Object {
    +           "auto": true,
    +           "defaultFilterSettings": Object {
    +             "method": "absoluteThreshold",
    +             "methodSettings": Object {
    +               "absoluteThreshold": Object {
    +                 "binStep": 0.6,
    +                 "maxFraction": 0.07181355,
    +               },
    +             },
    +           },
    +           "enabled": true,
    +           "filterSettings": Object {
    +             "method": "absoluteThreshold",
    +             "methodSettings": Object {
    +               "absoluteThreshold": Object {
    +                 "binStep": 0.3,
    +                 "maxFraction": 0.07181329,
    +               },
    +             },
    +           },
    +         },
    +       },
    +       "numGenesVsNumUmis": Object {
    +         "fc68aefc-c3ca-467f-8589-f1dbaaac1c1e": Object {
    +           "auto": true,
    +           "defaultFilterSettings": Object {
    +             "regressionType": "linear",
    +             "regressionTypeSettings": Object {
    +               "linear": Object {
    +                 "p.level": 0.001,
    +               },
    +               "spline": Object {
    +                 "p.level": 0.001,
    +               },
    +             },
    +           },
    +           "enabled": true,
    +           "filterSettings": Object {
    +             "regressionType": "linear",
    +             "regressionTypeSettings": Object {
    +               "linear": Object {
    +                 "p.level": 0.001,
    +               },
    +               "spline": Object {
    +                 "p.level": 0.001,
    +               },
    +             },
    +           },
    +         },
    +       },
    +     },
          "mockAuthJWT",
          "mockJobId",
        ],
      ]

      133 |
      134 |     expect(experimentInstance.updateById.mock.calls).toMatchSnapshot();
    > 135 |     expect(pipelineConstruct.createQCPipeline.mock.calls).toMatchSnapshot();
          |                                                           ^
      136 |   });
      137 |
      138 |   it('Starts a QC run when gem2s finishes and can duplicate defaultProcessingConfig ignoring entries that arent samples', async () => {

      at Object.<anonymous> (tests/api.v2/helpers/pipeline/gem2s.test.js:135:59)

  ● gem2sResponse › Starts a QC run when gem2s finishes and can duplicate defaultProcessingConfig ignoring entries that arent samples

    expect(received).toMatchSnapshot()

    Snapshot name: `gem2sResponse Starts a QC run when gem2s finishes and can duplicate defaultProcessingConfig ignoring entries that arent samples 2`

    - Snapshot  -   1
    + Received  + 147

      Array [
        Array [
          "mockExperimentId",
    -     Array [],
    +     Object {
    +       "cellSizeDistribution": Object {
    +         "fc68aefc-c3ca-467f-8589-f1dbaaac1c1e": Object {
    +           "auto": true,
    +           "defaultFilterSettings": Object {
    +             "binStep": 200,
    +             "minCellSize": 1044,
    +           },
    +           "enabled": false,
    +           "filterSettings": Object {
    +             "binStep": 200,
    +             "minCellSize": 1044,
    +           },
    +         },
    +       },
    +       "classifier": Object {
    +         "fc68aefc-c3ca-467f-8589-f1dbaaac1c1e": Object {
    +           "auto": true,
    +           "defaultFilterSettings": Object {
    +             "FDR": 0.02,
    +           },
    +           "enabled": false,
    +           "filterSettings": Object {
    +             "FDR": 0.01,
    +           },
    +           "prefiltered": true,
    +         },
    +       },
    +       "configureEmbedding": Object {
    +         "clusteringSettings": Object {
    +           "method": "louvain",
    +           "methodSettings": Object {
    +             "louvain": Object {
    +               "resolution": 0.8,
    +             },
    +           },
    +         },
    +         "embeddingSettings": Object {
    +           "method": "umap",
    +           "methodSettings": Object {
    +             "tsne": Object {
    +               "learningRate": 200,
    +               "perplexity": 30,
    +             },
    +             "umap": Object {
    +               "distanceMetric": "cosine",
    +               "minimumDistance": 0.3,
    +             },
    +           },
    +         },
    +       },
    +       "dataIntegration": Object {
    +         "dataIntegration": Object {
    +           "method": "harmony",
    +           "methodSettings": Object {
    +             "fastmnn": Object {
    +               "normalisation": "logNormalize",
    +               "numGenes": 2000,
    +             },
    +             "harmony": Object {
    +               "normalisation": "logNormalize",
    +               "numGenes": 2000,
    +             },
    +             "seuratv4": Object {
    +               "normalisation": "logNormalize",
    +               "numGenes": 2000,
    +             },
    +             "unisample": Object {
    +               "normalisation": "logNormalize",
    +               "numGenes": 2000,
    +             },
    +           },
    +         },
    +         "dimensionalityReduction": Object {
    +           "excludeGeneCategories": Array [],
    +           "method": "rpca",
    +           "numPCs": 30,
    +         },
    +       },
    +       "doubletScores": Object {
    +         "fc68aefc-c3ca-467f-8589-f1dbaaac1c1e": Object {
    +           "auto": true,
    +           "defaultFilterSettings": Object {
    +             "binStep": 0.05,
    +             "probabilityThreshold": 0.6569474,
    +           },
    +           "enabled": true,
    +           "filterSettings": Object {
    +             "binStep": 0.02,
    +             "probabilityThreshold": 0.6569474,
    +           },
    +         },
    +         "someStepFlag": true,
    +       },
    +       "mitochondrialContent": Object {
    +         "fc68aefc-c3ca-467f-8589-f1dbaaac1c1e": Object {
    +           "auto": true,
    +           "defaultFilterSettings": Object {
    +             "method": "absoluteThreshold",
    +             "methodSettings": Object {
    +               "absoluteThreshold": Object {
    +                 "binStep": 0.6,
    +                 "maxFraction": 0.07181355,
    +               },
    +             },
    +           },
    +           "enabled": true,
    +           "filterSettings": Object {
    +             "method": "absoluteThreshold",
    +             "methodSettings": Object {
    +               "absoluteThreshold": Object {
    +                 "binStep": 0.3,
    +                 "maxFraction": 0.07181329,
    +               },
    +             },
    +           },
    +         },
    +       },
    +       "numGenesVsNumUmis": Object {
    +         "fc68aefc-c3ca-467f-8589-f1dbaaac1c1e": Object {
    +           "auto": true,
    +           "defaultFilterSettings": Object {
    +             "regressionType": "linear",
    +             "regressionTypeSettings": Object {
    +               "linear": Object {
    +                 "p.level": 0.001,
    +               },
    +               "spline": Object {
    +                 "p.level": 0.001,
    +               },
    +             },
    +           },
    +           "enabled": true,
    +           "filterSettings": Object {
    +             "regressionType": "linear",
    +             "regressionTypeSettings": Object {
    +               "linear": Object {
    +                 "p.level": 0.001,
    +               },
    +               "spline": Object {
    +                 "p.level": 0.001,
    +               },
    +             },
    +           },
    +         },
    +       },
    +     },
          "mockAuthJWT",
          "mockJobId",
        ],
      ]

      178 |
      179 |     expect(experimentInstance.updateById.mock.calls).toMatchSnapshot();
    > 180 |     expect(pipelineConstruct.createQCPipeline.mock.calls).toMatchSnapshot();
          |                                                           ^
      181 |   });
      182 |
      183 |   it('Updates the subset experiment when subsetSeurat is notified to have finished', async () => {

      at Object.<anonymous> (tests/api.v2/helpers/pipeline/gem2s.test.js:180:59)

  ● qcController › runQC works correctly with processingConfig changes

    expect(jest.fn()).toHaveBeenCalledWith(...expected)

    Expected: "experimentId", [{"body": {"auto": true, "enabled": true, "f87892f0-3403-4ba9-b871-c366e3fa855e": {"auto": false, "defaultFilterSettings": {"regressionType": "linear", "regressionTypeSettings": {"linear": {"p.level": 0.001}, "spline": {"p.level": 0.001}}}, "enabled": true, "filterSettings": {"regressionType": "linear", "regressionTypeSettings": {"linear": {"p.level": 0.00095}, "spline": {"p.level": 0.001}}}}, "filterSettings": {"regressionType": "linear", "regressionTypeSettings": {"linear": {"p.level": 0.001}, "spline": {"p.level": 0.001}}}}, "name": "numGenesVsNumUmis"}], "mockAuthorization"
    Received: "experimentId", undefined, "mockAuthorization"

    Number of calls: 1

      86 |     await qcController.runQC(mockReq, mockRes);
      87 |
    > 88 |     expect(pipelineConstruct.createQCPipeline).toHaveBeenCalledWith(
         |                                                ^
      89 |       experimentId, processingConfigUpdate, authorization,
      90 |     );
      91 |

      at Object.<anonymous> (tests/api.v2/controllers/qcController.test.js:88:48)

  ● qcController › runQC works correctly without processingConfig changes

    expect(jest.fn()).toHaveBeenCalledWith(...expected)

    Expected: "experimentId", [], "mockAuthorization"
    Received: "experimentId", undefined, "mockAuthorization"

    Number of calls: 1

      109 |     await qcController.runQC(mockReq, mockRes);
      110 |
    > 111 |     expect(pipelineConstruct.createQCPipeline).toHaveBeenCalledWith(
          |                                                ^
      112 |       experimentId, [], authorization,
      113 |     );
      114 |

      at Object.<anonymous> (tests/api.v2/controllers/qcController.test.js:111:48)

  ● helper functions for skeletons › returns from first not-completed step if the config has no changes

    TypeError: Cannot read property 'select' of undefined

      21 |   async getMetadataByExperimentIds(experimentIds) {
      22 |     const result = await this.sql
    > 23 |       .select([...fields, `${tableNames.CELL_LEVEL_META_TO_EXPERIMENT_MAP}.experiment_id`])
         |        ^
      24 |       .from(tableNames.CELL_LEVEL_META_TO_EXPERIMENT_MAP)
      25 |       .leftJoin(
      26 |         tableNames.CELL_LEVEL_META,

      at CellLevelMeta.getMetadataByExperimentIds (src/api.v2/model/CellLevelMeta.js:23:8)
      at getCellLevelMetadataFileChanged (src/api.v2/helpers/pipeline/pipelineConstruct/qcHelpers.js:26:6)
      at getFirstQCStep (src/api.v2/helpers/pipeline/pipelineConstruct/qcHelpers.js:46:14)
      at getQcStepsToRun (src/api.v2/helpers/pipeline/pipelineConstruct/qcHelpers.js:107:27)
      at Object.<anonymous> (tests/api.v2/helpers/pipeline/pipelineConstruct/qcHelpers.test.js:131:27)

Annotations

Check failure on line 94 in tests/api.v2/helpers/pipeline/pipelineConstruct.test.js

See this annotation in the file changed.

@github-actions github-actions / jest-github-action

test for pipeline services > Create QC pipeline works

Error: expect(received).toMatchSnapshot()

Snapshot name: `test for pipeline services Create QC pipeline works 3`

- Snapshot  - 0
+ Received  + 6

@@ -4,9 +4,15 @@
        "experiment_id": "testExperimentId",
        "pipeline_type": "qc",
      },
      Object {
        "execution_arn": "test-machine",
+       "last_pipeline_params": Object {
+         "cellMetadataId": "2c5983db-c690-4ed3-a4ad-bb12b065d60d",
+       },
+       "retry_params": Object {
+         "clusteringShouldRun": true,
+       },
        "state_machine_arn": "test-machine",
      },
    ],
  ]
    at Object.<anonymous> (/home/runner/work/api/api/tests/api.v2/helpers/pipeline/pipelineConstruct.test.js:144:59)
    at processTicksAndRejections (internal/process/task_queues.js:95:5)

Error: expect(received).toMatchSnapshot(hint)

Snapshot name: `test for pipeline services Create QC pipeline works: experimentInstance processingConfig update 1`

- Snapshot  - 2
+ Received  + 7

@@ -107,18 +107,23 @@
          "doubletScores": Object {
            "oneSample": Object {
              "defaultFilterSettings": Object {
                "oneSetting": 1,
              },
+             "enabled": true,
              "filterSettings": Object {
-               "oneSetting": 7,
+               "oneSetting": 1,
              },
              "recomputeDoubletScore": true,
            },
            "otherSample": Object {
+             "defaultFilterSettings": Object {
+               "oneSetting": 1,
+             },
+             "enabled": true,
              "filterSettings": Object {
-               "oneSetting": 15,
+               "oneSetting": 1,
              },
              "recomputeDoubletScore": true,
            },
          },
          "mitochondrialContent": Object {
    at Object.<anonymous> (/home/runner/work/api/api/tests/api.v2/helpers/pipeline/pipelineConstruct.test.js:150:54)
    at processTicksAndRejections (internal/process/task_queues.js:95:5)

Check failure on line 157 in tests/api.v2/helpers/pipeline/pipelineConstruct.test.js

See this annotation in the file changed.

@github-actions github-actions / jest-github-action

test for pipeline services > Parses QC processingConfig with cell level metadata file correctly

Error: expect(received).toMatchSnapshot()

Snapshot name: `test for pipeline services Parses QC processingConfig with cell level metadata file correctly 1`

- Snapshot  -  2
+ Received  + 11

@@ -21,10 +21,11 @@
              "States": Object {
                "CellSizeDistributionFilter": Object {
                  "End": true,
                  "HeartbeatSeconds": 90,
                  "Parameters": Object {
+                   "clusteringShouldRun": true,
                    "config": Object {
                      "oneSample": Object {
                        "auto": true,
                        "enabled": false,
                        "filterSettings": Object {
@@ -77,10 +78,11 @@
              "States": Object {
                "ClassifierFilter": Object {
                  "End": true,
                  "HeartbeatSeconds": 90,
                  "Parameters": Object {
+                   "clusteringShouldRun": true,
                    "config": Object {
                      "oneSample": Object {
                        "auto": true,
                        "enabled": false,
                        "filterSettings": Object {
@@ -128,10 +130,11 @@
              },
            ],
            "HeartbeatSeconds": 90,
            "Next": "EndOfPipeline",
            "Parameters": Object {
+             "clusteringShouldRun": true,
              "config": Object {
                "clusteringSettings": Object {
                  "method": "louvain",
                  "methodSettings": Object {
                    "louvain": Object {
@@ -178,10 +181,11 @@
              },
            ],
            "HeartbeatSeconds": 90,
            "Next": "ConfigureEmbedding",
            "Parameters": Object {
+             "clusteringShouldRun": true,
              "config": Object {
                "dataIntegration": Object {
                  "method": "harmony",
                  "methodSettings": Object {
                    "fastmnn": Object {
@@ -238,20 +242,23 @@
              "States": Object {
                "DoubletScoresFilter": Object {
                  "End": true,
                  "HeartbeatSeconds": 90,
                  "Parameters": Object {
+                   "clusteringShouldRun": true,
                    "config": Object {
                      "oneSample": Object {
+                       "enabled": true,
                        "filterSettings": Object {
-                         "oneSetting": 7,
+                         "oneSetting": 1,
                        },
                        "recomputeDoubletScore": true,
                      },
                      "otherSample": Object {
+                       "enabled": true,
                        "filterSettings": Object {
-                         "oneSetting": 15,
+                         "oneSetting": 1,
                        },
                        "recomputeDoubletScore": true,
                      },
                    },
                    "experimentId": "testExperimentId",
@@ -312,10 +319,11 @@
              "States": Object {
                "MitochondrialContentFilter": Object {
                  "End": true,
                  "HeartbeatSeconds": 90,
                  "Parameters": Object {
+                   "clusteringShouldRun": true,
                    "config": Object {
                      "oneSample": Object {
                        "auto": true,
                        "enabled": true,
                        "filterSettings": Object {
@@ -378,10 +386,11 @@
              "States": Object {
                "NumGenesVsNumUmisFilter": Object {
                  "End": true,
                  "HeartbeatSeconds": 90,
                  "Parameters": Object {
+                   "clusteringShouldRun": true,
                    "config": Object {
                      "oneSample": Object {
                        "auto": true,
                        "enabled": true,
                        "filterSettings": Object {
    at Object.<anonymous> (/home/runner/work/api/api/tests/api.v2/helpers/pipeline/pipelineConstruct.test.js:215:48)

Check failure on line 219 in tests/api.v2/helpers/pipeline/pipelineConstruct.test.js

See this annotation in the file changed.

@github-actions github-actions / jest-github-action

test for pipeline services > Parses QC processingConfig with no cell level metadata file correctly

Error: expect(received).toMatchSnapshot()

Snapshot name: `test for pipeline services Parses QC processingConfig with no cell level metadata file correctly 1`

- Snapshot  -  2
+ Received  + 11

@@ -21,10 +21,11 @@
              "States": Object {
                "CellSizeDistributionFilter": Object {
                  "End": true,
                  "HeartbeatSeconds": 90,
                  "Parameters": Object {
+                   "clusteringShouldRun": true,
                    "config": Object {
                      "oneSample": Object {
                        "auto": true,
                        "enabled": false,
                        "filterSettings": Object {
@@ -77,10 +78,11 @@
              "States": Object {
                "ClassifierFilter": Object {
                  "End": true,
                  "HeartbeatSeconds": 90,
                  "Parameters": Object {
+                   "clusteringShouldRun": true,
                    "config": Object {
                      "oneSample": Object {
                        "auto": true,
                        "enabled": false,
                        "filterSettings": Object {
@@ -128,10 +130,11 @@
              },
            ],
            "HeartbeatSeconds": 90,
            "Next": "EndOfPipeline",
            "Parameters": Object {
+             "clusteringShouldRun": true,
              "config": Object {
                "clusteringSettings": Object {
                  "method": "louvain",
                  "methodSettings": Object {
                    "louvain": Object {
@@ -178,10 +181,11 @@
              },
            ],
            "HeartbeatSeconds": 90,
            "Next": "ConfigureEmbedding",
            "Parameters": Object {
+             "clusteringShouldRun": true,
              "config": Object {
                "dataIntegration": Object {
                  "method": "harmony",
                  "methodSettings": Object {
                    "fastmnn": Object {
@@ -238,20 +242,23 @@
              "States": Object {
                "DoubletScoresFilter": Object {
                  "End": true,
                  "HeartbeatSeconds": 90,
                  "Parameters": Object {
+                   "clusteringShouldRun": true,
                    "config": Object {
                      "oneSample": Object {
+                       "enabled": true,
                        "filterSettings": Object {
-                         "oneSetting": 7,
+                         "oneSetting": 1,
                        },
                        "recomputeDoubletScore": true,
                      },
                      "otherSample": Object {
+                       "enabled": true,
                        "filterSettings": Object {
-                         "oneSetting": 15,
+                         "oneSetting": 1,
                        },
                        "recomputeDoubletScore": true,
                      },
                    },
                    "experimentId": "testExperimentId",
@@ -312,10 +319,11 @@
              "States": Object {
                "MitochondrialContentFilter": Object {
                  "End": true,
                  "HeartbeatSeconds": 90,
                  "Parameters": Object {
+                   "clusteringShouldRun": true,
                    "config": Object {
                      "oneSample": Object {
                        "auto": true,
                        "enabled": true,
                        "filterSettings": Object {
@@ -378,10 +386,11 @@
              "States": Object {
                "NumGenesVsNumUmisFilter": Object {
                  "End": true,
                  "HeartbeatSeconds": 90,
                  "Parameters": Object {
+                   "clusteringShouldRun": true,
                    "config": Object {
                      "oneSample": Object {
                        "auto": true,
                        "enabled": true,
                        "filterSettings": Object {
    at Object.<anonymous> (/home/runner/work/api/api/tests/api.v2/helpers/pipeline/pipelineConstruct.test.js:269:48)

Check failure on line 395 in tests/api.v2/helpers/pipeline/pipelineConstruct.test.js

See this annotation in the file changed.

@github-actions github-actions / jest-github-action

test for pipeline services > Create Subset pipeline works

Error: expect(received).toMatchSnapshot(hint)

Snapshot name: `test for pipeline services Create Subset pipeline works: createStateMachineSpy calls 1`

- Snapshot  - 1
+ Received  + 1

@@ -1,9 +1,9 @@
  Array [
    Array [
      Object {
-       "definition": "{\"Comment\":\"Subset Pipeline for clusterEnv 'test'\",\"StartAt\":\"RequestPod\",\"States\":{\"RequestPod\":{\"ResultPath\":null,\"Next\":\"WaitForPod\",\"Comment\":\"Send a message through SNS so that the API assigns a pod to the pipeline\",\"Type\":\"Task\",\"Resource\":\"arn:aws:states:::sns:publish\",\"Parameters\":{\"TopicArn\":\"arn:aws:sns:eu-west-1:000000000000:work-results-test-default-v2\",\"Message\":\"{\\\"taskName\\\":\\\"assignPodToPipeline\\\",\\\"experimentId\\\":\\\"toExperimentId\\\",\\\"apiUrl\\\":\\\"test-public-api-url\\\",\\\"input\\\":{\\\"experimentId\\\":\\\"toExperimentId\\\",\\\"sandboxId\\\":\\\"default\\\",\\\"activityId\\\":\\\"pipeline-test-mock-uuid\\\",\\\"processName\\\":\\\"subset\\\"}}\",\"MessageAttributes\":{\"type\":{\"DataType\":\"String\",\"StringValue\":\"PipelineResponse\"}}}},\"WaitForPod\":{\"ResultPath\":null,\"Next\":\"SubsetSeurat\",\"Type\":\"Map\",\"ItemsPath\":\"$.retries\",\"MaxConcurrency\":1,\"Retry\":[{\"ErrorEquals\":[\"NoPodAssigned\"],\"IntervalSeconds\":1,\"MaxAttempts\":13,\"BackoffRate\":1.5}],\"Iterator\":{\"StartAt\":\"GetAssignedPod\",\"States\":{\"GetAssignedPod\":{\"Next\":\"IsPodAssigned\",\"Type\":\"Task\",\"Comment\":\"Retrieves first unassigned and running pipeline pod.\",\"Resource\":\"arn:aws:states:::eks:call\",\"Parameters\":{\"ClusterName\":\"biomage-test\",\"CertificateAuthority\":\"AAAAAAAAAAA\",\"Endpoint\":\"https://test-endpoint.me/fgh\",\"Method\":\"GET\",\"Path\":\"/api/v1/namespaces/pipeline-test-namespace/pods\",\"QueryParameters\":{\"labelSelector\":[\"type=pipeline,activityId=pipeline-test-mock-uuid\"]}}},\"IsPodAssigned\":{\"Type\":\"Choice\",\"Comment\":\"Redirects to an error state if the pipeline pod is not assigned yet.\",\"Choices\":[{\"Variable\":\"$.ResponseBody.items[0]\",\"IsPresent\":false,\"Next\":\"NoPodAssigned\"}],\"Default\":\"ReadyToRun\"},\"NoPodAssigned\":{\"Type\":\"Fail\",\"Cause\":\"No available and running pipeline pods.\",\"Error\":\"NoPodAssigned\"},\"ReadyToRun\":{\"Type\":\"Pass\",\"End\":true}}}},\"SubsetSeurat\":{\"Next\":\"PrepareExperiment\",\"Type\":\"Task\",\"Resource\":\"arn:aws:states:eu-west-1:000000000000:activity:pipeline-test-mock-uuid\",\"ResultPath\":null,\"TimeoutSeconds\":10800,\"HeartbeatSeconds\":90,\"Parameters\":{\"experimentId\":\"toExperimentId\",\"taskName\":\"subsetSeurat\",\"processName\":\"subset\",\"server\":\"remoter-server-toExperimentId.pipeline-test-namespace.svc.cluster.local\",\"ignoreSslCert\":false,\"parentExperimentId\":\"fromExperimentId\",\"subsetExperimentId\":\"toExperimentId\",\"cellSetKeys\":[\"louvain-1\",\"louvain-2\"],\"parentProcessingConfig\":{\"classifier\":{\"oneSample\":{\"auto\":true,\"enabled\":false,\"prefiltered\":true,\"filterSettings\":{\"FDR\":0.01},\"defaultFilterSettings\":{\"FDR\":0.01}},\"otherSample\":{\"auto\":true,\"enabled\":false,\"prefiltered\":true,\"filterSettings\":{\"FDR\":0.01},\"defaultFilterSettings\":{\"FDR\":0.01}}},\"doubletScores\":{\"oneSample\":{\"defaultFilterSettings\":{\"oneSetting\":1},\"filterSettings\":{\"oneSetting\":7}},\"otherSample\":{\"filterSettings\":{\"oneSetting\":15}}},\"dataIntegration\":{\"dataIntegration\":{\"method\":\"harmony\",\"methodSettings\":{\"fastmnn\":{\"numGenes\":2000,\"normalisation\":\"logNormalize\"},\"harmony\":{\"numGenes\":2000,\"normalisation\":\"logNormalize\"},\"seuratv4\":{\"numGenes\":2000,\"normalisation\":\"logNormalize\"},\"unisample\":{\"numGenes\":2000,\"normalisation\":\"logNormalize\"}}},\"dimensionalityReduction\":{\"method\":\"rpca\",\"numPCs\":30,\"excludeGeneCategories\":[]}},\"numGenesVsNumUmis\":{\"oneSample\":{\"auto\":true,\"enabled\":true,\"filterSettings\":{\"regressionType\":\"linear\",\"regressionTypeSettings\":{\"linear\":{\"p.level\":0.001},\"spline\":{\"p.level\":0.001}}},\"defaultFilterSettings\":{\"regressionType\":\"linear\",\"regressionTypeSettings\":{\"linear\":{\"p.level\":0.001},\"spline\":{\"p.level\":0.001}}}},\"otherSample\":{\"auto\":true,\"enabled\":true,\"filterSettings\":{\"regressionType\":\"linear\",\"regressionTypeSettings\":{\"linear\":{\"p.level\":0.001},\"spline\":{\"p.level\":0.001}}},\"defaultFilterSettings\":{\"regressionType\":\"linear\",\"regressionTypeSettings\":{\"linear\":{\"p.level\":0.001},\"spline\":{\"p.level\":0.001}}}}},\"configureEmbedding\":{\"embeddingSettings\":{\"method\":\"umap\",\"methodSettings\":{\"tsne\":{\"perplexity\":30,\"learningRate\":200},\"umap\":{\"distanceMetric\":\"cosine\",\"minimumDistance\":0.3}}},\"clusteringSettings\":{\"method\":\"louvain\",\"methodSettings\":{\"louvain\":{\"resolution\":0.8}}}},\"cellSizeDistribution\":{\"oneSample\":{\"auto\":true,\"enabled\":false,\"filterSettings\":{\"binStep\":200,\"minCellSize\":1044},\"defaultFilterSettings\":{\"binStep\":200,\"minCellSize\":1044}},\"otherSample\":{\"auto\":true,\"enabled\":false,\"filterSettings\":{\"binStep\":200,\"minCellSize\":1044},\"defaultFilterSettings\":{\"binStep\":200,\"minCellSize\":1044}}},\"mitochondrialContent\":{\"oneSample\":{\"auto\":true,\"enabled\":true,\"filterSettings\":{\"method\":\"absoluteThreshold\",\"methodSettings\":{\"absoluteThreshold\":{\"binStep\":0.3,\"maxFraction\":0.07181329}}},\"defaultFilterSettings\":{\"method\":\"absoluteThreshold\",\"methodSettings\":{\"absoluteThreshold\":{\"binStep\":0.3,\"maxFraction\":0.07181329}}}},\"otherSample\":{\"auto\":true,\"enabled\":true,\"filterSettings\":{\"method\":\"absoluteThreshold\",\"methodSettings\":{\"absoluteThreshold\":{\"binStep\":0.3,\"maxFraction\":0.07181329}}},\"defaultFilterSettings\":{\"method\":\"absoluteThreshold\",\"methodSettings\":{\"absoluteThreshold\":{\"binStep\":0.3,\"maxFraction\":0.07181329}}}}}}},\"Catch\":[{\"ErrorEquals\":[\"States.ALL\"],\"ResultPath\":\"$.errorInfo\",\"Next\":\"HandleError\"}]},\"PrepareExperiment\":{\"Next\":\"UploadToAWS\",\"Type\":\"Task\",\"Resource\":\"arn:aws:states:eu-west-1:000000000000:activity:pipeline-test-mock-uuid\",\"ResultPath\":null,\"TimeoutSeconds\":10800,\"HeartbeatSeconds\":90,\"Parameters\":{\"experimentId\":\"toExperimentId\",\"taskName\":\"prepareExperiment\",\"processName\":\"subset\",\"server\":\"remoter-server-toExperimentId.pipeline-test-namespace.svc.cluster.local\",\"ignoreSslCert\":false,\"experimentName\":\"toExperimentName\",\"authJWT\":\"mockAuthJWT\"},\"Catch\":[{\"ErrorEquals\":[\"States.ALL\"],\"ResultPath\":\"$.errorInfo\",\"Next\":\"HandleError\"}]},\"UploadToAWS\":{\"Next\":\"EndOfPipeline\",\"Type\":\"Task\",\"Resource\":\"arn:aws:states:eu-west-1:000000000000:activity:pipeline-test-mock-uuid\",\"ResultPath\":null,\"TimeoutSeconds\":10800,\"HeartbeatSeconds\":90,\"Parameters\":{\"experimentId\":\"toExperimentId\",\"taskName\":\"uploadToAWS\",\"processName\":\"subset\",\"server\":\"remoter-server-toExperimentId.pipeline-test-namespace.svc.cluster.local\",\"ignoreSslCert\":false,\"experimentName\":\"toExperimentName\",\"authJWT\":\"mockAuthJWT\"},\"Catch\":[{\"ErrorEquals\":[\"States.ALL\"],\"ResultPath\":\"$.errorInfo\",\"Next\":\"HandleError\"}]},\"HandleError\":{\"Next\":\"MarkAsFailed\",\"Type\":\"Task\",\"Resource\":\"arn:aws:states:::sns:publish\",\"Parameters\":{\"TopicArn\":\"arn:aws:sns:eu-west-1:000000000000:work-results-test-default-v2\",\"Message.$\":\"States.Format('\\\\{\\\"taskName\\\":\\\"pipelineError\\\",\\\"experimentId\\\":\\\"toExperimentId\\\",\\\"apiUrl\\\":\\\"test-public-api-url\\\",\\\"input\\\":\\\\{\\\"experimentId\\\":\\\"toExperimentId\\\",\\\"error\\\":\\\"{}\\\",\\\"taskName\\\":\\\"pipelineError\\\",\\\"sandboxId\\\":\\\"default\\\",\\\"activityId\\\":\\\"pipeline-test-mock-uuid\\\",\\\"processName\\\":\\\"subset\\\"\\\\}\\\\}', $.errorInfo.Error)\",\"MessageAttributes\":{\"type\":{\"DataType\":\"String\",\"StringValue\":\"PipelineResponse\"}}}},\"MarkAsFailed\":{\"Type\":\"Fail\"},\"EndOfPipeline\":{\"Type\":\"Pass\",\"End\":true}}}",
+       "definition": "{\"Comment\":\"Subset Pipeline for clusterEnv 'test'\",\"StartAt\":\"RequestPod\",\"States\":{\"RequestPod\":{\"ResultPath\":null,\"Next\":\"WaitForPod\",\"Comment\":\"Send a message through SNS so that the API assigns a pod to the pipeline\",\"Type\":\"Task\",\"Resource\":\"arn:aws:states:::sns:publish\",\"Parameters\":{\"TopicArn\":\"arn:aws:sns:eu-west-1:000000000000:work-results-test-default-v2\",\"Message\":\"{\\\"taskName\\\":\\\"assignPodToPipeline\\\",\\\"experimentId\\\":\\\"toExperimentId\\\",\\\"apiUrl\\\":\\\"test-public-api-url\\\",\\\"input\\\":{\\\"experimentId\\\":\\\"toExperimentId\\\",\\\"sandboxId\\\":\\\"default\\\",\\\"activityId\\\":\\\"pipeline-test-mock-uuid\\\",\\\"processName\\\":\\\"subset\\\"}}\",\"MessageAttributes\":{\"type\":{\"DataType\":\"String\",\"StringValue\":\"PipelineResponse\"}}}},\"WaitForPod\":{\"ResultPath\":null,\"Next\":\"SubsetSeurat\",\"Type\":\"Map\",\"ItemsPath\":\"$.retries\",\"MaxConcurrency\":1,\"Retry\":[{\"ErrorEquals\":[\"NoPodAssigned\"],\"IntervalSeconds\":1,\"MaxAttempts\":13,\"BackoffRate\":1.5}],\"Iterator\":{\"StartAt\":\"GetAssignedPod\",\"States\":{\"GetAssignedPod\":{\"Next\":\"IsPodAssigned\",\"Type\":\"Task\",\"Comment\":\"Retrieves first unassigned and running pipeline pod.\",\"Resource\":\"arn:aws:states:::eks:call\",\"Parameters\":{\"ClusterName\":\"biomage-test\",\"CertificateAuthority\":\"AAAAAAAAAAA\",\"Endpoint\":\"https://test-endpoint.me/fgh\",\"Method\":\"GET\",\"Path\":\"/api/v1/namespaces/pipeline-test-namespace/pods\",\"QueryParameters\":{\"labelSelector\":[\"type=pipeline,activityId=pipeline-test-mock-uuid\"]}}},\"IsPodAssigned\":{\"Type\":\"Choice\",\"Comment\":\"Redirects to an error state if the pipeline pod is not assigned yet.\",\"Choices\":[{\"Variable\":\"$.ResponseBody.items[0]\",\"IsPresent\":false,\"Next\":\"NoPodAssigned\"}],\"Default\":\"ReadyToRun\"},\"NoPodAssigned\":{\"Type\":\"Fail\",\"Cause\":\"No available and running pipeline pods.\",\"Error\":\"NoPodAssigned\"},\"ReadyToRun\":{\"Type\":\"Pass\",\"End\":true}}}},\"SubsetSeurat\":{\"Next\":\"PrepareExperiment\",\"Type\":\"Task\",\"Resource\":\"arn:aws:states:eu-west-1:000000000000:activity:pipeline-test-mock-uuid\",\"ResultPath\":null,\"TimeoutSeconds\":10800,\"HeartbeatSeconds\":90,\"Parameters\":{\"experimentId\":\"toExperimentId\",\"taskName\":\"subsetSeurat\",\"processName\":\"subset\",\"server\":\"remoter-server-toExperimentId.pipeline-test-namespace.svc.cluster.local\",\"ignoreSslCert\":false,\"parentExperimentId\":\"fromExperimentId\",\"subsetExperimentId\":\"toExperimentId\",\"cellSetKeys\":[\"louvain-1\",\"louvain-2\"],\"parentProcessingConfig\":{\"classifier\":{\"oneSample\":{\"auto\":true,\"enabled\":false,\"prefiltered\":true,\"filterSettings\":{\"FDR\":0.01},\"defaultFilterSettings\":{\"FDR\":0.01}},\"otherSample\":{\"auto\":true,\"enabled\":false,\"prefiltered\":true,\"filterSettings\":{\"FDR\":0.01},\"defaultFilterSettings\":{\"FDR\":0.01}}},\"doubletScores\":{\"oneSample\":{\"enabled\":true,\"filterSettings\":{\"oneSetting\":1},\"defaultFilterSettings\":{\"oneSetting\":1},\"recomputeDoubletScore\":true},\"otherSample\":{\"enabled\":true,\"filterSettings\":{\"oneSetting\":1},\"defaultFilterSettings\":{\"oneSetting\":1},\"recomputeDoubletScore\":true}},\"dataIntegration\":{\"dataIntegration\":{\"method\":\"harmony\",\"methodSettings\":{\"fastmnn\":{\"numGenes\":2000,\"normalisation\":\"logNormalize\"},\"harmony\":{\"numGenes\":2000,\"normalisation\":\"logNormalize\"},\"seuratv4\":{\"numGenes\":2000,\"normalisation\":\"logNormalize\"},\"unisample\":{\"numGenes\":2000,\"normalisation\":\"logNormalize\"}}},\"dimensionalityReduction\":{\"method\":\"rpca\",\"numPCs\":30,\"excludeGeneCategories\":[]}},\"numGenesVsNumUmis\":{\"oneSample\":{\"auto\":true,\"enabled\":true,\"filterSettings\":{\"regressionType\":\"linear\",\"regressionTypeSettings\":{\"linear\":{\"p.level\":0.001},\"spline\":{\"p.level\":0.001}}},\"defaultFilterSettings\":{\"regressionType\":\"linear\",\"regressionTypeSettings\":{\"linear\":{\"p.level\":0.001},\"spline\":{\"p.level\":0.001}}}},\"otherSample\":{\"auto\":true,\"enabled\":true,\"filterSettings\":{\"regressionType\":\"linear\",\"regressionTypeSettings\":{\"linear\":{\"p.level\":0.001},\"spline\":{\"p.level\":0.001}}},\"defaultFilterSettings\":{\"regressionType\":\"linear\",\"regressionTypeSettings\":{\"linear\":{\"p.level\":0.001},\"spline\":{\"p.level\":0.001}}}}},\"configureEmbedding\":{\"embeddingSettings\":{\"method\":\"umap\",\"methodSettings\":{\"tsne\":{\"perplexity\":30,\"learningRate\":200},\"umap\":{\"distanceMetric\":\"cosine\",\"minimumDistance\":0.3}}},\"clusteringSettings\":{\"method\":\"louvain\",\"methodSettings\":{\"louvain\":{\"resolution\":0.8}}}},\"cellSizeDistribution\":{\"oneSample\":{\"auto\":true,\"enabled\":false,\"filterSettings\":{\"binStep\":200,\"minCellSize\":1044},\"defaultFilterSettings\":{\"binStep\":200,\"minCellSize\":1044}},\"otherSample\":{\"auto\":true,\"enabled\":false,\"filterSettings\":{\"binStep\":200,\"minCellSize\":1044},\"defaultFilterSettings\":{\"binStep\":200,\"minCellSize\":1044}}},\"mitochondrialContent\":{\"oneSample\":{\"auto\":true,\"enabled\":true,\"filterSettings\":{\"method\":\"absoluteThreshold\",\"methodSettings\":{\"absoluteThreshold\":{\"binStep\":0.3,\"maxFraction\":0.07181329}}},\"defaultFilterSettings\":{\"method\":\"absoluteThreshold\",\"methodSettings\":{\"absoluteThreshold\":{\"binStep\":0.3,\"maxFraction\":0.07181329}}}},\"otherSample\":{\"auto\":true,\"enabled\":true,\"filterSettings\":{\"method\":\"absoluteThreshold\",\"methodSettings\":{\"absoluteThreshold\":{\"binStep\":0.3,\"maxFraction\":0.07181329}}},\"defaultFilterSettings\":{\"method\":\"absoluteThreshold\",\"methodSettings\":{\"absoluteThreshold\":{\"binStep\":0.3,\"maxFraction\":0.07181329}}}}}}},\"Catch\":[{\"ErrorEquals\":[\"States.ALL\"],\"ResultPath\":\"$.errorInfo\",\"Next\":\"HandleError\"}]},\"PrepareExperiment\":{\"Next\":\"UploadToAWS\",\"Type\":\"Task\",\"Resource\":\"arn:aws:states:eu-west-1:000000000000:activity:pipeline-test-mock-uuid\",\"ResultPath\":null,\"TimeoutSeconds\":10800,\"HeartbeatSeconds\":90,\"Parameters\":{\"experimentId\":\"toExperimentId\",\"taskName\":\"prepareExperiment\",\"processName\":\"subset\",\"server\":\"remoter-server-toExperimentId.pipeline-test-namespace.svc.cluster.local\",\"ignoreSslCert\":false,\"experimentName\":\"toExperimentName\",\"authJWT\":\"mockAuthJWT\"},\"Catch\":[{\"ErrorEquals\":[\"States.ALL\"],\"ResultPath\":\"$.errorInfo\",\"Next\":\"HandleError\"}]},\"UploadToAWS\":{\"Next\":\"EndOfPipeline\",\"Type\":\"Task\",\"Resource\":\"arn:aws:states:eu-west-1:000000000000:activity:pipeline-test-mock-uuid\",\"ResultPath\":null,\"TimeoutSeconds\":10800,\"HeartbeatSeconds\":90,\"Parameters\":{\"experimentId\":\"toExperimentId\",\"taskName\":\"uploadToAWS\",\"processName\":\"subset\",\"server\":\"remoter-server-toExperimentId.pipeline-test-namespace.svc.cluster.local\",\"ignoreSslCert\":false,\"experimentName\":\"toExperimentName\",\"authJWT\":\"mockAuthJWT\"},\"Catch\":[{\"ErrorEquals\":[\"States.ALL\"],\"ResultPath\":\"$.errorInfo\",\"Next\":\"HandleError\"}]},\"HandleError\":{\"Next\":\"MarkAsFailed\",\"Type\":\"Task\",\"Resource\":\"arn:aws:states:::sns:publish\",\"Parameters\":{\"TopicArn\":\"arn:aws:sns:eu-west-1:000000000000:work-results-test-default-v2\",\"Message.$\":\"States.Format('\\\\{\\\"taskName\\\":\\\"pipelineError\\\",\\\"experimentId\\\":\\\"toExperimentId\\\",\\\"apiUrl\\\":\\\"test-public-api-url\\\",\\\"input\\\":\\\\{\\\"experimentId\\\":\\\"toExperimentId\\\",\\\"error\\\":\\\"{}\\\",\\\"taskName\\\":\\\"pipelineError\\\",\\\"sandboxId\\\":\\\"default\\\",\\\"activityId\\\":\\\"pipeline-test-mock-uuid\\\",\\\"processName\\\":\\\"subset\\\"\\\\}\\\\}', $.errorInfo.Error)\",\"MessageAttributes\":{\"type\":{\"DataType\":\"String\",\"StringValue\":\"PipelineResponse\"}}}},\"MarkAsFailed\":{\"Type\":\"Fail\"},\"EndOfPipeline\":{\"Type\":\"Pass\",\"End\":true}}}",
        "loggingConfiguration": Object {
          "level": "OFF",
        },
        "name": "biomage-subset-test-f3880dbb8507da8b0f158c0216a7d7189670e6ca",
        "roleArn": "arn:aws:iam::000000000000:role/state-machine-role-test",
    at Object.<anonymous> (/home/runner/work/api/api/tests/api.v2/helpers/pipeline/pipelineConstruct.test.js:440:46)

Check failure on line 99 in tests/api.v2/helpers/pipeline/gem2s.test.js

See this annotation in the file changed.

@github-actions github-actions / jest-github-action

gem2sResponse > Starts a QC run when gem2s finishes

Error: expect(received).toMatchSnapshot()

Snapshot name: `gem2sResponse Starts a QC run when gem2s finishes 2`

- Snapshot  -   1
+ Received  + 146

  Array [
    Array [
      "mockExperimentId",
-     Array [],
+     Object {
+       "cellSizeDistribution": Object {
+         "fc68aefc-c3ca-467f-8589-f1dbaaac1c1e": Object {
+           "auto": true,
+           "defaultFilterSettings": Object {
+             "binStep": 200,
+             "minCellSize": 1044,
+           },
+           "enabled": false,
+           "filterSettings": Object {
+             "binStep": 200,
+             "minCellSize": 1044,
+           },
+         },
+       },
+       "classifier": Object {
+         "fc68aefc-c3ca-467f-8589-f1dbaaac1c1e": Object {
+           "auto": true,
+           "defaultFilterSettings": Object {
+             "FDR": 0.02,
+           },
+           "enabled": false,
+           "filterSettings": Object {
+             "FDR": 0.01,
+           },
+           "prefiltered": true,
+         },
+       },
+       "configureEmbedding": Object {
+         "clusteringSettings": Object {
+           "method": "louvain",
+           "methodSettings": Object {
+             "louvain": Object {
+               "resolution": 0.8,
+             },
+           },
+         },
+         "embeddingSettings": Object {
+           "method": "umap",
+           "methodSettings": Object {
+             "tsne": Object {
+               "learningRate": 200,
+               "perplexity": 30,
+             },
+             "umap": Object {
+               "distanceMetric": "cosine",
+               "minimumDistance": 0.3,
+             },
+           },
+         },
+       },
+       "dataIntegration": Object {
+         "dataIntegration": Object {
+           "method": "harmony",
+           "methodSettings": Object {
+             "fastmnn": Object {
+               "normalisation": "logNormalize",
+               "numGenes": 2000,
+             },
+             "harmony": Object {
+               "normalisation": "logNormalize",
+               "numGenes": 2000,
+             },
+             "seuratv4": Object {
+               "normalisation": "logNormalize",
+               "numGenes": 2000,
+             },
+             "unisample": Object {
+               "normalisation": "logNormalize",
+               "numGenes": 2000,
+             },
+           },
+         },
+         "dimensionalityReduction": Object {
+           "excludeGeneCategories": Array [],
+           "method": "rpca",
+           "numPCs": 30,
+         },
+       },
+       "doubletScores": Object {
+         "fc68aefc-c3ca-467f-8589-f1dbaaac1c1e": Object {
+           "auto": true,
+           "defaultFilterSettings": Object {
+             "binStep": 0.05,
+             "probabilityThreshold": 0.6569474,
+           },
+           "enabled": true,
+           "filterSettings": Object {
+             "binStep": 0.02,
+             "probabilityThreshold": 0.6569474,
+           },
+         },
+       },
+       "mitochondrialContent": Object {
+         "fc68aefc-c3ca-467f-8589-f1dbaaac1c1e": Object {
+           "auto": true,
+           "defaultFilterSettings": Object {
+             "method": "absoluteThreshold",
+             "methodSettings": Object {
+               "absoluteThreshold": Object {
+                 "binStep": 0.6,
+                 "maxFraction": 0.07181355,
+               },
+             },
+           },
+           "enabled": true,
+           "filterSettings": Object {
+             "method": "absoluteThreshold",
+             "methodSettings": Object {
+               "absoluteThreshold": Object {
+                 "binStep": 0.3,
+                 "maxFraction": 0.07181329,
+               },
+             },
+           },
+         },
+       },
+       "numGenesVsNumUmis": Object {
+         "fc68aefc-c3ca-467f-8589-f1dbaaac1c1e": Object {
+           "auto": true,
+           "defaultFilterSettings": Object {
+             "regressionType": "linear",
+             "regressionTypeSettings": Object {
+               "linear": Object {
+                 "p.level": 0.001,
+               },
+               "spline": Object {
+                 "p.level": 0.001,
+               },
+             },
+           },
+           "enabled": true,
+           "filterSettings": Object {
+             "regressionType": "linear",
+             "regressionTypeSettings": Object {
+               "linear": Object {
+                 "p.level": 0.001,
+               },
+               "spline": Object {
+                 "p.level": 0.001,
+               },
+             },
+           },
+         },
+       },
+     },
      "mockAuthJWT",
      "mockJobId",
    ],
  ]
    at Object.<anonymous> (/home/runner/work/api/api/tests/api.v2/helpers/pipeline/gem2s.test.js:135:59)

Check failure on line 138 in tests/api.v2/helpers/pipeline/gem2s.test.js

See this annotation in the file changed.

@github-actions github-actions / jest-github-action

gem2sResponse > Starts a QC run when gem2s finishes and can duplicate defaultProcessingConfig ignoring entries that arent samples

Error: expect(received).toMatchSnapshot()

Snapshot name: `gem2sResponse Starts a QC run when gem2s finishes and can duplicate defaultProcessingConfig ignoring entries that arent samples 2`

- Snapshot  -   1
+ Received  + 147

  Array [
    Array [
      "mockExperimentId",
-     Array [],
+     Object {
+       "cellSizeDistribution": Object {
+         "fc68aefc-c3ca-467f-8589-f1dbaaac1c1e": Object {
+           "auto": true,
+           "defaultFilterSettings": Object {
+             "binStep": 200,
+             "minCellSize": 1044,
+           },
+           "enabled": false,
+           "filterSettings": Object {
+             "binStep": 200,
+             "minCellSize": 1044,
+           },
+         },
+       },
+       "classifier": Object {
+         "fc68aefc-c3ca-467f-8589-f1dbaaac1c1e": Object {
+           "auto": true,
+           "defaultFilterSettings": Object {
+             "FDR": 0.02,
+           },
+           "enabled": false,
+           "filterSettings": Object {
+             "FDR": 0.01,
+           },
+           "prefiltered": true,
+         },
+       },
+       "configureEmbedding": Object {
+         "clusteringSettings": Object {
+           "method": "louvain",
+           "methodSettings": Object {
+             "louvain": Object {
+               "resolution": 0.8,
+             },
+           },
+         },
+         "embeddingSettings": Object {
+           "method": "umap",
+           "methodSettings": Object {
+             "tsne": Object {
+               "learningRate": 200,
+               "perplexity": 30,
+             },
+             "umap": Object {
+               "distanceMetric": "cosine",
+               "minimumDistance": 0.3,
+             },
+           },
+         },
+       },
+       "dataIntegration": Object {
+         "dataIntegration": Object {
+           "method": "harmony",
+           "methodSettings": Object {
+             "fastmnn": Object {
+               "normalisation": "logNormalize",
+               "numGenes": 2000,
+             },
+             "harmony": Object {
+               "normalisation": "logNormalize",
+               "numGenes": 2000,
+             },
+             "seuratv4": Object {
+               "normalisation": "logNormalize",
+               "numGenes": 2000,
+             },
+             "unisample": Object {
+               "normalisation": "logNormalize",
+               "numGenes": 2000,
+             },
+           },
+         },
+         "dimensionalityReduction": Object {
+           "excludeGeneCategories": Array [],
+           "method": "rpca",
+           "numPCs": 30,
+         },
+       },
+       "doubletScores": Object {
+         "fc68aefc-c3ca-467f-8589-f1dbaaac1c1e": Object {
+           "auto": true,
+           "defaultFilterSettings": Object {
+             "binStep": 0.05,
+             "probabilityThreshold": 0.6569474,
+           },
+           "enabled": true,
+           "filterSettings": Object {
+             "binStep": 0.02,
+             "probabilityThreshold": 0.6569474,
+           },
+         },
+         "someStepFlag": true,
+       },
+       "mitochondrialContent": Object {
+         "fc68aefc-c3ca-467f-8589-f1dbaaac1c1e": Object {
+           "auto": true,
+           "defaultFilterSettings": Object {
+             "method": "absoluteThreshold",
+             "methodSettings": Object {
+               "absoluteThreshold": Object {
+                 "binStep": 0.6,
+                 "maxFraction": 0.07181355,
+               },
+             },
+           },
+           "enabled": true,
+           "filterSettings": Object {
+             "method": "absoluteThreshold",
+             "methodSettings": Object {
+               "absoluteThreshold": Object {
+                 "binStep": 0.3,
+                 "maxFraction": 0.07181329,
+               },
+             },
+           },
+         },
+       },
+       "numGenesVsNumUmis": Object {
+         "fc68aefc-c3ca-467f-8589-f1dbaaac1c1e": Object {
+           "auto": true,
+           "defaultFilterSettings": Object {
+             "regressionType": "linear",
+             "regressionTypeSettings": Object {
+               "linear": Object {
+                 "p.level": 0.001,
+               },
+               "spline": Object {
+                 "p.level": 0.001,
+               },
+             },
+           },
+           "enabled": true,
+           "filterSettings": Object {
+             "regressionType": "linear",
+             "regressionTypeSettings": Object {
+               "linear": Object {
+                 "p.level": 0.001,
+               },
+               "spline": Object {
+                 "p.level": 0.001,
+               },
+             },
+           },
+         },
+       },
+     },
      "mockAuthJWT",
      "mockJobId",
    ],
  ]
    at Object.<anonymous> (/home/runner/work/api/api/tests/api.v2/helpers/pipeline/gem2s.test.js:180:59)

Check failure on line 74 in tests/api.v2/controllers/qcController.test.js

See this annotation in the file changed.

@github-actions github-actions / jest-github-action

qcController > runQC works correctly with processingConfig changes

Error: expect(jest.fn()).toHaveBeenCalledWith(...expected)

Expected: "experimentId", [{"body": {"auto": true, "enabled": true, "f87892f0-3403-4ba9-b871-c366e3fa855e": {"auto": false, "defaultFilterSettings": {"regressionType": "linear", "regressionTypeSettings": {"linear": {"p.level": 0.001}, "spline": {"p.level": 0.001}}}, "enabled": true, "filterSettings": {"regressionType": "linear", "regressionTypeSettings": {"linear": {"p.level": 0.00095}, "spline": {"p.level": 0.001}}}}, "filterSettings": {"regressionType": "linear", "regressionTypeSettings": {"linear": {"p.level": 0.001}, "spline": {"p.level": 0.001}}}}, "name": "numGenesVsNumUmis"}], "mockAuthorization"
Received: "experimentId", undefined, "mockAuthorization"

Number of calls: 1
    at Object.<anonymous> (/home/runner/work/api/api/tests/api.v2/controllers/qcController.test.js:88:48)

Check failure on line 97 in tests/api.v2/controllers/qcController.test.js

See this annotation in the file changed.

@github-actions github-actions / jest-github-action

qcController > runQC works correctly without processingConfig changes

Error: expect(jest.fn()).toHaveBeenCalledWith(...expected)

Expected: "experimentId", [], "mockAuthorization"
Received: "experimentId", undefined, "mockAuthorization"

Number of calls: 1
    at Object.<anonymous> (/home/runner/work/api/api/tests/api.v2/controllers/qcController.test.js:111:48)

Check failure on line 123 in tests/api.v2/helpers/pipeline/pipelineConstruct/qcHelpers.test.js

See this annotation in the file changed.

@github-actions github-actions / jest-github-action

helper functions for skeletons > returns from first not-completed step if the config has no changes

TypeError: Cannot read property 'select' of undefined
    at CellLevelMeta.getMetadataByExperimentIds (/home/runner/work/api/api/src/api.v2/model/CellLevelMeta.js:23:8)
    at getCellLevelMetadataFileChanged (/home/runner/work/api/api/src/api.v2/helpers/pipeline/pipelineConstruct/qcHelpers.js:26:6)
    at getFirstQCStep (/home/runner/work/api/api/src/api.v2/helpers/pipeline/pipelineConstruct/qcHelpers.js:46:14)
    at getQcStepsToRun (/home/runner/work/api/api/src/api.v2/helpers/pipeline/pipelineConstruct/qcHelpers.js:107:27)
    at Object.<anonymous> (/home/runner/work/api/api/tests/api.v2/helpers/pipeline/pipelineConstruct/qcHelpers.test.js:131:27)
    at Object.asyncJestTest (/home/runner/work/api/api/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:106:37)
    at /home/runner/work/api/api/node_modules/jest-jasmine2/build/queueRunner.js:45:12
    at new Promise (<anonymous>)
    at mapper (/home/runner/work/api/api/node_modules/jest-jasmine2/build/queueRunner.js:28:19)
    at /home/runner/work/api/api/node_modules/jest-jasmine2/build/queueRunner.js:75:41