Skip to content

Commit c54bdf7

Browse files
authored
Merge branch 'dev' into dev
2 parents 7ae392e + cece18e commit c54bdf7

229 files changed

Lines changed: 30563 additions & 1977 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/bug-tracker-issues.yml

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,16 @@ on:
44
push:
55
paths:
66
- docs/2d-network-cypress-bug-log.csv
7+
- docs/map-view-cypress-bug-log.csv
8+
- docs/epi-curve-cypress-bug-log.csv
9+
- docs/gantt-chart-cypress-bug-log.csv
10+
- docs/sankey-view-cypress-bug-log.csv
11+
- docs/aggregate-view-cypress-bug-log.csv
12+
- docs/bubble-view-cypress-bug-log.csv
13+
- docs/waterfall-view-cypress-bug-log.csv
14+
- docs/table-view-cypress-bug-log.csv
15+
- docs/phylogenetic-view-cypress-bug-log.csv
16+
- docs/dashboard-cypress-bug-log.csv
717
workflow_dispatch:
818

919
permissions:
@@ -13,6 +23,20 @@ permissions:
1323
jobs:
1424
sync-issues:
1525
runs-on: ubuntu-latest
26+
strategy:
27+
matrix:
28+
csv_path:
29+
- docs/2d-network-cypress-bug-log.csv
30+
- docs/map-view-cypress-bug-log.csv
31+
- docs/epi-curve-cypress-bug-log.csv
32+
- docs/gantt-chart-cypress-bug-log.csv
33+
- docs/sankey-view-cypress-bug-log.csv
34+
- docs/aggregate-view-cypress-bug-log.csv
35+
- docs/bubble-view-cypress-bug-log.csv
36+
- docs/waterfall-view-cypress-bug-log.csv
37+
- docs/table-view-cypress-bug-log.csv
38+
- docs/phylogenetic-view-cypress-bug-log.csv
39+
- docs/dashboard-cypress-bug-log.csv
1640
env:
1741
BUG_TRACKER_ASSIGNEE: ${{ vars.BUG_TRACKER_ASSIGNEE || github.actor }}
1842
steps:
@@ -24,7 +48,7 @@ jobs:
2448
- name: Build bug tracker issue payloads
2549
run: |
2650
python3 scripts/bug_tracker_issue_candidates.py \
27-
--csv-path docs/2d-network-cypress-bug-log.csv \
51+
--csv-path "${{ matrix.csv_path }}" \
2852
--before "${{ github.event.before }}" \
2953
--branch "${{ github.ref_name }}" \
3054
--commit-sha "${{ github.sha }}" \

cypress/e2e/ingestion/files-ui.cy.ts

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -125,18 +125,23 @@ describe('File Handling and Processing', () => {
125125
it('loads a compressed MicrobeTrace session zip', () => {
126126
cy.attach_files('#fileDropRef', ['outbreaknorm_session.zip'], ['application/zip']);
127127

128-
cy.contains('#file-table .file-table-row', 'Demo_outbreak_EdgeList.csv', { timeout: 20000 }).should('be.visible');
129-
cy.contains('#file-table .file-table-row', 'nodeList_RIPDemo.csv', { timeout: 20000 }).should('be.visible');
130-
131-
cy.window().then((win) => {
132-
expect(win.commonService.session.data.nodes).to.have.length(80);
133-
expect(win.commonService.session.data.links).to.have.length(1078);
134-
expect(win.commonService.session.layout.content.map((item: any) => item.type)).to.deep.equal([
135-
'2d_network',
128+
cy.window({ timeout: 20000 })
129+
.its('commonService.session.data.nodes.length')
130+
.should('equal', 80);
131+
132+
cy.window({ timeout: 20000 })
133+
.its('commonService.session.data.links.length')
134+
.should('equal', 1078);
135+
136+
cy.window({ timeout: 20000 })
137+
.its('commonService.session.layout.content')
138+
.should((content: any[]) => {
139+
expect(content.map((item: any) => item.type)).to.deep.equal([
140+
'2D Network',
136141
'geo_map',
137142
'table'
138-
]);
139-
});
143+
]);
144+
});
140145
});
141146

142147

cypress/e2e/journeys/datasets/profile.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ import { LINK_PROFILES } from './profiles/links';
1616
import { COLOR_BY_PROFILES } from './profiles/color-by';
1717
import { TIMELINE_PROFILES } from './profiles/timeline';
1818
import { MAP_PROFILES } from './profiles/map';
19+
import { GANTT_PROFILES } from './profiles/gantt';
20+
import { ALIGNMENT_PROFILES } from './profiles/alignment';
21+
import { HEATMAP_PROFILES } from './profiles/heatmap';
22+
import { PHYLO_PROFILES } from './profiles/phylo';
1923

2024
export const DATASET_PROFILES: DatasetProfile[] = [
2125
...LOAD_PROFILES,
@@ -28,6 +32,10 @@ export const DATASET_PROFILES: DatasetProfile[] = [
2832
...COLOR_BY_PROFILES,
2933
...TIMELINE_PROFILES,
3034
...MAP_PROFILES,
35+
...HEATMAP_PROFILES,
36+
...GANTT_PROFILES,
37+
...ALIGNMENT_PROFILES,
38+
...PHYLO_PROFILES,
3139
];
3240

3341
export const DATASET_PROFILE_MAP: Record<string, DatasetProfile> = DATASET_PROFILES
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
import type { DatasetProfile } from '../types';
2+
import { P } from '../types';
3+
4+
export const ALIGNMENT_PROFILES: DatasetProfile[] = [
5+
P({
6+
id: 'alignment-angulartesting-fasta',
7+
title: 'Alignment: FASTA launch then switch renders the sequence canvas',
8+
tags: ['alignment', 'load-to-alignment', 'fasta', 'snps'],
9+
files: [
10+
{
11+
name: 'AngularTesting_seqs_TN93_BS.fasta',
12+
datatype: 'fasta',
13+
},
14+
],
15+
preLaunch: {
16+
metric: 'snps',
17+
threshold: 16,
18+
defaultView: '2D Network',
19+
},
20+
expectations: {
21+
afterLaunch: {
22+
nodes: 14,
23+
visibleLinks: 11,
24+
},
25+
alignment: {
26+
visibleSequences: 14,
27+
excludedNodeIds: [],
28+
},
29+
},
30+
}),
31+
P({
32+
id: 'alignment-angulartesting-sequence-node-list',
33+
title: 'Alignment: sequence node list launch then switch renders deterministic labels and canvas state',
34+
tags: ['alignment', 'load-to-alignment', 'node', 'tn93'],
35+
files: [
36+
{
37+
name: 'AngularTesting_nodelist_withseqs_TN93_BS.csv',
38+
datatype: 'node',
39+
field1: '_id',
40+
field2: 'seq',
41+
},
42+
],
43+
preLaunch: {
44+
metric: 'tn93',
45+
threshold: 0.015,
46+
defaultView: '2D Network',
47+
},
48+
expectations: {
49+
afterLaunch: {
50+
nodes: 14,
51+
visibleLinks: 17,
52+
clusters: 2,
53+
singletons: 2,
54+
},
55+
alignment: {
56+
visibleSequences: 14,
57+
excludedNodeIds: [],
58+
},
59+
},
60+
}),
61+
P({
62+
id: 'alignment-covid-node-link-excluded',
63+
title: 'Alignment: node plus distance-link launch then switch excludes missing sequences and keeps the sequence canvas stable',
64+
tags: ['alignment', 'load-to-alignment', 'node-link', 'snps'],
65+
files: [
66+
{
67+
name: 'COVID-19_simulated_NodeList_snp.csv',
68+
datatype: 'node',
69+
field1: 'ID',
70+
field2: 'seq',
71+
},
72+
{
73+
name: 'COVID_Dummy_distance_edgelist_snp.csv',
74+
datatype: 'link',
75+
field1: 'source',
76+
field2: 'target',
77+
field3: 'distance',
78+
},
79+
],
80+
preLaunch: {
81+
metric: 'snps',
82+
threshold: 16,
83+
defaultView: '2D Network',
84+
},
85+
expectations: {
86+
afterLaunch: {
87+
nodes: 33,
88+
visibleLinks: 46,
89+
clusters: 4,
90+
singletons: 13,
91+
},
92+
alignment: {
93+
visibleSequences: 30,
94+
excludedNodeIds: ['P1', 'P2', 'P3'],
95+
},
96+
},
97+
}),
98+
];

cypress/e2e/journeys/datasets/profiles/color-by.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ export const COLOR_BY_PROFILES: DatasetProfile[] = [
55
P({
66
id: 'color-by-uploaded-categorical',
77
title: 'Styling: uploaded categorical node and link color-by controls update Cytoscape and color tables',
8-
tags: ['style', 'color-by', 'uploaded', 'node-link', 'load-to-twod'],
8+
tags: ['style', 'color-by', 'uploaded', 'node-link', 'load-to-twod', 'load-to-bubble'],
99
files: [
1010
{ name: 'TestStyleNodelist_snp.csv', datatype: 'node' },
1111
{ name: 'TestStyleEdgelist_snp.csv', datatype: 'link', field1: 'source', field2: 'target' },

cypress/e2e/journeys/datasets/profiles/filtering.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ export const FILTERING_PROFILES: DatasetProfile[] = [
5353
P({
5454
id: 'filtering-mixed-origin-nearest-neighbor',
5555
title: 'Filtering: mixed-origin nearest neighbor confirms before pruning and preserves epi-backed links',
56-
tags: ['filtering', 'mixed-origin', 'nn-mixed-origin', 'tn93', 'load-to-twod'],
56+
tags: ['filtering', 'mixed-origin', 'nn-mixed-origin', 'tn93', 'load-to-twod', 'load-to-bubble'],
5757
files: [
5858
{
5959
name: 'AngularTesting_nodelist_withseqs_TN93_BS.csv',
@@ -116,7 +116,7 @@ export const FILTERING_PROFILES: DatasetProfile[] = [
116116
P({
117117
id: 'filtering-metric-switch-sequence-node-list',
118118
title: 'Filtering: post-launch metric switch on sequence node list updates threshold and visible links',
119-
tags: ['filtering', 'metric-switch', 'sequence', 'tn93', 'snps', 'load-to-twod'],
119+
tags: ['filtering', 'metric-switch', 'sequence', 'tn93', 'snps', 'load-to-twod', 'load-to-bubble'],
120120
files: [
121121
{
122122
name: 'AngularTesting_nodelist_withseqs_TN93_BS.csv',
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
import type { DatasetProfile } from '../types';
2+
import { P } from '../types';
3+
4+
export const GANTT_PROFILES: DatasetProfile[] = [
5+
P({
6+
id: 'gantt-covid-node-link',
7+
title: 'Gantt: uploaded node plus distance-link data renders symptom-window entries for every loaded node',
8+
tags: ['gantt', 'load-to-gantt', 'node-link', 'snps'],
9+
files: [
10+
{
11+
name: 'COVID-19_simulated_NodeList_snp.csv',
12+
datatype: 'node',
13+
field1: 'ID',
14+
field2: 'seq',
15+
},
16+
{
17+
name: 'COVID_Dummy_distance_edgelist_snp.csv',
18+
datatype: 'link',
19+
field1: 'source',
20+
field2: 'target',
21+
field3: 'distance',
22+
},
23+
],
24+
preLaunch: {
25+
metric: 'snps',
26+
threshold: 16,
27+
defaultView: '2D Network',
28+
},
29+
expectations: {
30+
afterLaunch: {
31+
nodes: 33,
32+
visibleLinks: 46,
33+
clusters: 4,
34+
singletons: 13,
35+
},
36+
},
37+
}),
38+
P({
39+
id: 'gantt-angulartesting-sequence-node',
40+
title: 'Gantt: uploaded sequence node list renders date-range and single-date entries from node fields',
41+
tags: ['gantt', 'load-to-gantt', 'sequence-node', 'tn93'],
42+
files: [
43+
{
44+
name: 'AngularTesting_nodelist_withseqs_TN93_BS.csv',
45+
datatype: 'node',
46+
field1: '_id',
47+
field2: 'seq',
48+
},
49+
],
50+
preLaunch: {
51+
metric: 'tn93',
52+
threshold: 0.015,
53+
defaultView: '2D Network',
54+
},
55+
expectations: {
56+
afterLaunch: {
57+
nodes: 14,
58+
visibleLinks: 17,
59+
clusters: 2,
60+
singletons: 2,
61+
},
62+
},
63+
}),
64+
P({
65+
id: 'gantt-cypress-edge-case-node-link',
66+
title: 'Gantt: synthetic node plus link dates cover sparse rows and timezone normalization',
67+
tags: ['gantt', 'load-to-gantt', 'node-link', 'edge-cases'],
68+
files: [
69+
{
70+
name: 'Cypress_GanttEdgeCasesNodes.csv',
71+
datatype: 'node',
72+
},
73+
{
74+
name: 'Cypress_GanttEdgeCasesLinks.csv',
75+
datatype: 'link',
76+
field1: 'source',
77+
field2: 'target',
78+
field3: 'distance',
79+
},
80+
],
81+
preLaunch: {
82+
metric: 'snps',
83+
threshold: 16,
84+
defaultView: '2D Network',
85+
},
86+
expectations: {
87+
afterLaunch: {
88+
nodes: 4,
89+
visibleLinks: 3,
90+
},
91+
},
92+
}),
93+
];

0 commit comments

Comments
 (0)