From dd9200a655da1b86d39088f0b5bb5eb930c91690 Mon Sep 17 00:00:00 2001 From: Reinder Kraaij <kraaij@astron.nl> Date: Tue, 21 Nov 2023 08:24:55 +0100 Subject: [PATCH] FIx Unit Tests --- .../src/__mocks__/task_templates.json | 2431 +++++++++++++++++ .../helpers/toolbar/filters.helper.test.js | 32 +- 2 files changed, 2458 insertions(+), 5 deletions(-) diff --git a/SAS/TMSS/frontend/tmss_webapp/src/__mocks__/task_templates.json b/SAS/TMSS/frontend/tmss_webapp/src/__mocks__/task_templates.json index d27e1dc2012..4b2f99ec225 100644 --- a/SAS/TMSS/frontend/tmss_webapp/src/__mocks__/task_templates.json +++ b/SAS/TMSS/frontend/tmss_webapp/src/__mocks__/task_templates.json @@ -55293,6 +55293,2437 @@ }, "type": "http://localhost:3000/api/task_type/pipeline", "type_value": "pipeline" + }, + { + "description": "This schema defines the parameters for a pulsar pipeline.", + "name": "pulsar pipeline", + "purpose": "production", + "schema": { + "$id": "https://tmss.lofar.eu/api/schemas/tasktemplate/pulsar%20pipeline/8#", + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "description": "This schema defines the parameters for a pulsar pipeline.", + "patternProperties": { + "^[$]schema$": {} + }, + "properties": { + "cluster_resources": { + "$ref": "https://tmss.lofar.eu/api/schemas/commonschematemplate/pipeline/7#/definitions/cluster_resources", + "default": {} + }, + "dspsr": { + "additionalProperties": false, + "default": {}, + "properties": { + "digifil": { + "additionalProperties": false, + "default": {}, + "description": "Processes single pulses in CV data if single-pulse search is enabled", + "properties": { + "channels_per_part": { + "default": 512, + "description": "Number of frequency channels per part (multiple of subbands per part).", + "maximum": 512, + "minimum": 1, + "title": "Nr of Frequency Channels", + "type": "integer" + }, + "coherent_dedispersion": { + "default": true, + "title": "Coherent Dedispersion", + "type": "boolean" + }, + "dm": { + "default": -1, + "desciption": "Dispersion Measure (-1 for none)", + "minimum": -1, + "title": "DM", + "type": "number" + }, + "integration_time_factor": { + "default": 4, + "minimum": 1, + "title": "Integration time", + "type": "integer" + } + }, + "title": "Digifil", + "type": "object" + }, + "enabled": { + "default": true, + "title": "Enabled", + "type": "boolean" + }, + "filterbank": { + "additionalProperties": false, + "default": {}, + "properties": { + "channels_per_part": { + "default": 120, + "description": "Number of frequency channels per part (multiple of subbands per part).", + "maximum": 512, + "minimum": 1, + "title": "Nr of Frequency Channels", + "type": "integer" + }, + "coherent_dedispersion": { + "default": true, + "title": "Coherent Dedispersion", + "type": "boolean" + }, + "enabled": { + "default": false, + "title": "Enabled", + "type": "boolean" + } + }, + "title": "Create extra channels", + "type": "object" + }, + "optimise_period_dm": { + "default": true, + "title": "Optimise period & DM", + "type": "boolean" + }, + "rfi_excision": { + "default": true, + "description": "Excise/clean/remove detected RFI", + "title": "RFI excision", + "type": "boolean" + }, + "single_pulse_subintegration": { + "default": false, + "description": "Create single-pulse subintegrations with inter-channel dispersion delays removed.", + "title": "Single pulse subintegration", + "type": "boolean" + }, + "subintegration_length": { + "default": -1, + "minimum": -1, + "title": "Subintegration length", + "type": "integer" + }, + "number_of_bins": { + "minimum": 2, + "title": "Number of bins", + "type": "integer" + } + }, + "title": "DSPSR", + "type": "object", + "required": [ + "enabled" + ] + }, + "output": { + "additionalProperties": false, + "default": {}, + "properties": { + "dynamic_spectrum": { + "additionalProperties": false, + "default": {}, + "properties": { + "enabled": { + "default": false, + "title": "Enabled", + "type": "boolean" + }, + "time_average": { + "default": 0.5, + "description": "Time averaging, in seconds.", + "minimum": 0.01, + "title": "Time average", + "type": "number" + } + }, + "title": "Dynamic Spectrum", + "type": "object" + }, + "quantisation": { + "additionalProperties": false, + "default": {}, + "description": "Quantise output into 8-bit samples", + "properties": { + "enabled": { + "default": false, + "title": "Enabled", + "type": "boolean" + }, + "scale": { + "default": 5, + "description": "Conversion sigma to use when converting to 8-bit samples", + "minimum": 1, + "title": "Conversion sigma", + "type": "number" + } + }, + "title": "Quantisation", + "type": "object" + } + }, + "title": "Output", + "type": "object" + }, + "presto": { + "additionalProperties": false, + "default": {}, + "properties": { + "fold_profile": { + "default": true, + "description": "Fold the pulsar profile", + "title": "Fold", + "type": "boolean" + }, + "input": { + "additionalProperties": false, + "properties": { + "decode_sigma": { + "default": 3, + "description": "Sigma threshold for decoding", + "minimum": 1, + "title": "Decode sigma", + "type": "number" + }, + "nr_blocks": { + "default": 100, + "description": "Number of blocks to read at a time", + "minimum": 1, + "title": "Nr of blocks", + "type": "integer" + }, + "samples_per_block": { + "default": 8192, + "minimum": 16, + "title": "Block size (samples)", + "type": "integer" + } + }, + "title": "Input", + "type": "object" + }, + "prepdata": { + "additionalProperties": false, + "default": {}, + "properties": { + "dm": { + "default": -1, + "desciption": "Dispersion Measure (-1 for none)", + "minimum": -1, + "title": "DM", + "type": "number" + } + }, + "title": "prepdata", + "type": "object" + }, + "prepfold": { + "default": true, + "title": "Enable prepfold", + "type": "boolean" + }, + "rfifind": { + "additionalProperties": false, + "default": {}, + "properties": { + "blocks": { + "default": 16, + "minimum": 1, + "title": "blocks", + "type": "integer" + } + }, + "title": "rfifind", + "type": "object" + }, + "rrats": { + "additionalProperties": false, + "default": {}, + "properties": { + "dm_range": { + "default": 5, + "minimum": 0, + "title": "DM range", + "type": "number" + }, + "enabled": { + "default": false, + "title": "Enabled", + "type": "boolean" + } + }, + "title": "RRATs analysis", + "type": "object" + } + }, + "title": "PRESTO", + "type": "object" + }, + "pulsar": { + "additionalProperties": false, + "default": {}, + "properties": { + "name": { + "default": "", + "description": "Name of the pulsar to fold, if strategy=manual", + "title": "Name", + "type": "string" + }, + "strategy": { + "default": "manual", + "description": "How to look up the pulsar to fold", + "enum": [ + "manual", + "meta", + "sapfind", + "sapfind3", + "tabfind", + "tabfind+" + ], + "enum_titles": [ + "Pulsar name specified here", + "SAP target is pulsar name", + "Brightest known pulsar in SAP", + "Brightest 3 known pulsars in SAP", + "Brightest known pulsar in TAB", + "Brightest 3 known pulsars in TAB" + ], + "title": "Strategy", + "type": "string" + } + }, + "title": "Pulsar to fold", + "type": "object" + }, + "single_pulse_search": { + "default": false, + "description": "Instructs PRESTO to process single pulses, and enables Digifil for CV data", + "title": "Single-pulse search", + "type": "boolean" + }, + "software_version": { + "$ref": "https://tmss.lofar.eu/api/schemas/commonschematemplate/pipeline/9#/definitions/software_version", + "default": "lofar-pulp:tmss" + } + }, + "required": [ + "pulsar", + "presto", + "dspsr", + "output" + ], + "title": "pulsar pipeline", + "type": "object", + "version": 8 + }, + "state": "active", + "version": 8, + "id": 29, + "ref_resolved_schema": { + "definitions": { + "beamformer": { + "additionalProperties": false, + "default": {}, + "properties": { + "pipelines": { + "additionalItems": false, + "default": [ + {} + ], + "description": "This array of beamformer pipelines is currently restricted to exactly 1 item. Support for handling multiple pipelines (in cobalt) will be added in the future.", + "items": { + "$ref": "#/definitions/beamformer_pipeline" + }, + "maxItems": 1, + "minItems": 1, + "title": "Pipelines", + "type": "array" + }, + "ppf": { + "default": false, + "description": "Use a PPF for the channellisation for beamforming. If not, an FFT is used.", + "title": "Use PPF when beamforming", + "type": "boolean" + } + }, + "required": [ + "pipelines", + "ppf" + ], + "title": "Beamformer", + "type": "object" + }, + "beamformer_pipeline": { + "additionalProperties": false, + "default": {}, + "headerTemplate": "Beamformer Pipeline {{ self.index }}", + "properties": { + "coherent": { + "additionalProperties": false, + "default": {}, + "properties": { + "SAPs": { + "additionalItems": false, + "default": [ + { + "name": "_SAP_name_", + "tabs": [] + } + ], + "description": "Which SAPs in the observation to beamform.", + "items": { + "additionalProperties": false, + "properties": { + "name": { + "default": "_SAP_to_beamform_", + "description": "Name of the SAP to beamform", + "minLength": 1, + "title": "SAP name", + "type": "string" + }, + "subbands": { + "$ref": "#/definitions/subband_selection", + "default": {} + }, + "tab_rings": { + "additonalProperties": false, + "default": {}, + "description": "Rings of TABs around the center of the beam.", + "properties": { + "count": { + "default": 0, + "maximum": 11, + "minimum": 0, + "title": "Number of rings", + "type": "integer" + }, + "width": { + "default": 0.01, + "description": "Distance between pointings.", + "minimum": 0, + "title": "Ring width", + "type": "number" + } + }, + "title": "Tied-Array Rings", + "type": "object" + }, + "tabs": { + "additionalItems": false, + "default": [], + "description": "Tied-array beams to form", + "items": { + "additionalProperties": false, + "default": {}, + "headerTemplate": "TAB {{ self.index }}", + "properties": { + "allow_after_previous": { + "default": true, + "description": "This TAB can be recorded after the previous TAB, if duration allows.", + "title": "Allow after previous", + "type": "boolean" + }, + "duration": { + "default": 0, + "description": "Exposure time of the TAB. 0 = observation duration.", + "maximum": 0, + "minimum": 0, + "title": "Duration", + "type": "integer" + }, + "pointing": { + "$ref": "https://tmss.lofar.eu/api/schemas/commonschematemplate/pointing/8#/definitions/pointing", + "default": {} + }, + "relative": { + "default": false, + "description": "The SAP pointing is added to the TAB pointing", + "title": "Relative to SAP", + "type": "boolean" + } + }, + "required": [ + "pointing", + "relative" + ], + "title": "Tied-Array Beam", + "type": "object" + }, + "title": "Tied-Array Beams", + "type": "array" + } + }, + "required": [ + "name", + "tabs" + ], + "type": "object" + }, + "minItems": 0, + "title": "SAPs", + "type": "array" + }, + "settings": { + "$ref": "#/definitions/stokes_settings", + "default": {} + } + }, + "required": [ + "SAPs", + "settings" + ], + "title": "Coherent Tied-Array Beams", + "type": "object" + }, + "flys eye": { + "additionalProperties": false, + "default": {}, + "description": "Produce beams containing the individual station signals", + "properties": { + "enabled": { + "default": false, + "title": "Enable Fly's Eye", + "type": "boolean" + }, + "settings": { + "$ref": "#/definitions/stokes_settings", + "default": {} + } + }, + "required": [ + "enabled" + ], + "title": "Fly's Eye Settings", + "type": "object" + }, + "incoherent": { + "additionalProperties": false, + "default": {}, + "properties": { + "SAPs": { + "additionalItems": false, + "default": [], + "description": "Which SAPs in the observation to create incoherent TABs for (empty list = all).", + "items": { + "additionalProperties": false, + "default": {}, + "properties": { + "name": { + "default": "_SAP_to_beamform_", + "description": "Name of the SAP to beamform", + "minLength": 1, + "title": "SAP name", + "type": "string" + }, + "subbands": { + "$ref": "#/definitions/subband_selection", + "default": {} + } + }, + "required": [ + "name", + "subbands" + ], + "type": "object" + }, + "minItems": 0, + "title": "SAPs", + "type": "array" + }, + "settings": { + "$ref": "#/definitions/stokes_settings", + "default": {} + } + }, + "required": [ + "settings", + "SAPs" + ], + "title": "Incoherent Tied-Array Beams", + "type": "object" + }, + "name": { + "default": "_beamformer_name_", + "description": "Beamformer name, used for identification purposes.", + "minLength": 1, + "title": "Name", + "type": "string" + }, + "station_groups": { + "$ref": "https://tmss.lofar.eu/api/schemas/commonschematemplate/stations/9#/definitions/station_groups", + "default": [ + { + "max_nr_missing": 1, + "stations": [ + "CS001", + "CS002", + "CS003", + "CS004", + "CS005", + "CS006", + "CS007", + "CS011", + "CS013", + "CS017", + "CS021", + "CS024", + "CS026", + "CS028", + "CS030", + "CS031", + "CS032", + "CS301", + "CS302", + "CS401", + "CS501" + ] + } + ], + "description": "While observing, COBALT will beamform on the intersection of all stations in this list and the used stations in the observation. So, specifying all possible stations here means that all observation-stations are used. Specifying a small subset here means that only the observing-stations in this small list are used. By default we let COBALT beamform on the Core stations.", + "minItems": 1 + } + }, + "required": [ + "name" + ], + "title": "Beamformer Pipeline", + "type": "object" + }, + "stokes": { + "default": "I", + "description": "Which Stokes to produce", + "enum": [ + "I", + "IQUV", + "XXYY" + ], + "title": "Stokes", + "type": "string" + }, + "stokes_settings": { + "additionalProperties": false, + "default": {}, + "properties": { + "channels_per_subband": { + "default": 1, + "description": "Number of frequency bands per subband", + "enum": [ + 1, + 8, + 16, + 32, + 64, + 128, + 256, + 512, + 1024 + ], + "minimum": 1, + "title": "Channels/subband", + "type": "integer" + }, + "quantisation": { + "additionalProperties": false, + "default": {}, + "properties": { + "bits": { + "default": 8, + "description": "Number of bits for a single value", + "enum": [ + 8 + ], + "title": "Bits/sample", + "type": "integer" + }, + "enabled": { + "default": false, + "title": "Output quantisation into integers", + "type": "boolean" + }, + "scale_max": { + "default": 5, + "description": "Cut off values above this treshold", + "title": "Maximum value", + "type": "number" + }, + "scale_min": { + "default": -5, + "description": "Cut off values below this treshold", + "title": "Minimum value", + "type": "number" + } + }, + "required": [ + "enabled", + "bits", + "scale_min", + "scale_max" + ], + "title": "Output quantisation settings", + "type": "object" + }, + "stokes": { + "$ref": "#/definitions/stokes", + "default": "I" + }, + "subbands_per_file": { + "default": 488, + "description": "The maximum number of subbands to write in each output dataproduct.", + "maximum": 488, + "minimum": 1, + "title": "Subbands per file", + "type": "integer" + }, + "time_integration_factor": { + "default": 1, + "description": "The number of samples to integrate over", + "maximum": 12288, + "minimum": 1, + "title": "Time integration", + "type": "integer" + } + }, + "required": [ + "stokes", + "time_integration_factor", + "channels_per_subband" + ], + "type": "object" + }, + "subband_selection": { + "additionalProperties": false, + "default": {}, + "properties": { + "list": { + "additionalItems": false, + "default": [], + "description": "If method is 'select subset', only beamform these subbands, and only if they occur in the SAP.", + "items": { + "maximum": 511, + "minimum": 0, + "title": "Subband", + "type": "integer" + }, + "minItems": 0, + "title": "Subset selection", + "type": "array" + }, + "method": { + "default": "copy", + "description": "How to select the subbands to beam form", + "enum": [ + "copy", + "largest continuous subset", + "select subset" + ], + "title": "Method", + "type": "string" + } + }, + "required": [ + "method" + ], + "title": "Subband selection", + "type": "object" + }, + "calibrator": { + "additionalProperties": false, + "default": {}, + "properties": { + "autoselect": { + "default": true, + "description": "Auto-select calibrator based on elevation", + "title": "Auto-select", + "type": "boolean" + }, + "name": { + "default": "calibrator", + "description": "Name of the calibrator SAP", + "title": "Name", + "type": "string" + }, + "pointing": { + "$ref": "https://tmss.lofar.eu/api/schemas/commonschematemplate/pointing/8#/definitions/pointing", + "default": {}, + "description": "Manually selected calibrator", + "title": "Digital pointing" + } + }, + "required": [ + "autoselect", + "pointing", + "name" + ], + "type": "object" + }, + "correlator": { + "additionalProperties": false, + "default": {}, + "properties": { + "channels_per_subband": { + "default": 64, + "description": "Number of frequency bands per subband", + "enum": [ + 8, + 16, + 32, + 64, + 128, + 256, + 512, + 1024 + ], + "minimum": 8, + "title": "Channels/subband", + "type": "integer" + }, + "integration_time": { + "$ref": "https://tmss.lofar.eu/api/schemas/commonschematemplate/datetime/9#/definitions/timedelta", + "default": 1, + "description": "Desired integration period (seconds)", + "minimum": 0.1, + "title": "Integration time" + }, + "storage_cluster": { + "default": "CEP4", + "description": "Cluster to write output to", + "enum": [ + "CEP4", + "DragNet" + ], + "title": "Storage cluster", + "type": "string" + }, + "topocentric_frequency_correction": { + "default": false, + "description": "Correct frequencies for the Doppler shift caused by the Earth's rotation.", + "title": "Topocentric Frequency Correction", + "type": "boolean" + } + } + }, + "timedelta": { + "default": 0, + "description": "A time duration or delta expressed in seconds", + "type": "number" + }, + "timestamp": { + "default": "1970-01-01T00:00:00Z", + "description": "A timestamp defined in UTC", + "format": "date-time", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d(\\.\\d+)?Z?", + "type": "string" + }, + "timewindow": { + "additionalProperties": false, + "description": "A timewindow interval: [from, to)", + "properties": { + "from": { + "$ref": "#/definitions/timestamp" + }, + "to": { + "$ref": "#/definitions/timestamp" + } + }, + "required": [ + "from", + "to" + ], + "type": "object" + }, + "lofar2antennafield": { + "additionalProperties": false, + "properties": { + "SAPs": { + "default": [ + {} + ], + "items": { + "sap": { + "default": {}, + "properties": { + "pointing": { + "$ref": "https://tmss.lofar.eu/api/schemas/commonschematemplate/pointing/9#/definitions/pointing", + "default": {} + }, + "subbands": { + "default": [ + 0 + ], + "items": { + "maximum": 511, + "minimum": 0, + "type": "number" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "subbands", + "pointing" + ], + "type": "object" + } + }, + "minItems": 1, + "type": "array" + }, + "antenna_field": { + "$ref": "https://tmss.lofar.eu/api/schemas/commonschematemplate/stations/10/#/definitions/antenna_field", + "default": "HBA" + }, + "antenna_set": { + "default": "ALL", + "description": "Fields & antennas to use", + "enum": [ + "ALL", + "INNER", + "OUTER", + "SPARSE_EVEN", + "SPARSE_ODD" + ], + "type": "string" + }, + "lead_time": { + "$ref": "https://tmss.lofar.eu/api/schemas/commonschematemplate/datetime/10#/definitions/timedelta", + "default": 2, + "description": "Number of seconds to start before the provided start time, to account for initialising the on-line signal chain, and for possibly negative geometrical delay compensation.", + "minimum": 0 + }, + "filter": { + "$ref": "https://tmss.lofar.eu/api/schemas/commonschematemplate/stations/10/#/definitions/filter", + "default": "HBA_110_190" + }, + "first_beamlet": { + "default": 0, + "minimum": 0, + "type": "number" + }, + "observation_id": { + "default": 1, + "minimum": 1, + "type": "number" + }, + "start_time": { + "$ref": "https://tmss.lofar.eu/api/schemas/commonschematemplate/datetime/10#/definitions/timestamp" + }, + "stop_time": { + "$ref": "https://tmss.lofar.eu/api/schemas/commonschematemplate/datetime/10#/definitions/timestamp", + "default": "2100-01-01T00:00:00Z" + }, + "HBA": { + "type": "object", + "additionalProperties": false, + "default": {}, + "properties": { + "tile_beam": { + "$ref": "https://tmss.lofar.eu/api/schemas/commonschematemplate/pointing/9#/definitions/pointing", + "default": {} + }, + "DAB_filter": { + "type": "boolean", + "default": false, + "description": "Enable hardware filter on DAB frequencies" + }, + "element_selection": { + "type": "string", + "default": "ALL", + "description": "Which element(s) to enable in each tile", + "enum": [ + "ALL", + "GENERIC_201512" + ] + } + } + }, + "dithering": { + "type": "object", + "additionalProperties": false, + "default": {}, + "properties": { + "enabled": { + "type": "boolean", + "default": false + }, + "power": { + "type": "number", + "description": "Power of dithering signal, in dBm", + "minimum": -25, + "maximum": -4, + "default": -4 + }, + "frequency": { + "type": "number", + "description": "Frequency of dithering signal, in Hz", + "default": 102000000 + } + } + } + }, + "required": [ + "observation_id", + "stop_time", + "antenna_field", + "antenna_set", + "filter", + "SAPs" + ], + "title": "lofar2antennafield", + "type": "object", + "version": 2 + }, + "cluster_resources": { + "additionalProperties": false, + "default": {}, + "description": "Which cluster resources to claim for this pipeline.", + "properties": { + "cores_per_task": { + "default": 2, + "description": "Number of cores to reserve for each process in the pipeline.", + "maximum": 24, + "minimum": 1, + "title": "Cores/task", + "type": "integer" + }, + "parallel_tasks": { + "default": 122, + "description": "Maximum number of tasks to run in parallel. Determines the size of the reservation. A smaller reservation results in a longer pipeline run. A bigger reservation results in more in resource waste.", + "maximum": 488, + "minimum": 1, + "title": "Max parallel tasks", + "type": "integer" + }, + "where": { + "additionalProperties": false, + "default": {}, + "description": "Where to run this pipeline.", + "properties": { + "cluster": { + "default": "CEP4", + "enum": [ + "CEP4" + ], + "title": "Cluster", + "type": "string" + }, + "partition": { + "default": "cpu", + "enum": [ + "cpu", + "gpu", + "testing" + ], + "title": "Partition", + "type": "string" + } + }, + "required": [ + "cluster", + "partition" + ], + "title": "Where", + "type": "object" + } + }, + "required": [ + "where", + "cores_per_task", + "parallel_tasks" + ], + "title": "Cluster resources", + "type": "object" + }, + "demix_strategy": { + "default": "auto", + "enum": [ + "auto", + "yes", + "no" + ], + "type": "string" + }, + "software_version": { + "default": "lofar-pipeline:latest", + "description": "The version/tag of the pipeline that should be used", + "type": "string" + }, + "pointing": { + "additionalProperties": false, + "properties": { + "angle1": { + "default": 0.6624317181687094, + "description": "First angle (e.g. RA)", + "title": "Angle 1", + "type": "number" + }, + "angle2": { + "default": 1.5579526427549426, + "description": "Second angle (e.g. DEC)", + "title": "Angle 2", + "type": "number" + }, + "direction_type": { + "default": "J2000", + "description": "", + "enum": [ + "J2000", + "AZELGEO", + "LMN", + "SUN", + "MOON", + "MERCURY", + "VENUS", + "MARS", + "JUPITER", + "SATURN", + "URANUS", + "NEPTUNE", + "PLUTO" + ], + "title": "Reference frame", + "type": "string" + }, + "target": { + "default": "_target_name_", + "description": "Description of where this beam points at", + "minLength": 1, + "title": "Target", + "type": "string" + } + }, + "required": [ + "angle1", + "angle2", + "target" + ], + "type": "object" + }, + "purpose": { + "default": "target", + "description": "The intended use of this pointing: calibrator, target or all sky", + "enum": [ + "calibrator", + "target", + "all sky" + ], + "type": "string" + }, + "QA": { + "additionalProperties": false, + "default": {}, + "description": "Perform all Quality Assurance (QA) tasks, including file conversion and plotting.", + "properties": { + "file_conversion": { + "$ref": "#/definitions/file_conversion", + "default": {} + }, + "inspection_plots": { + "$ref": "#/definitions/inspection_plots", + "default": "msplots" + }, + "plots": { + "$ref": "#/definitions/plots", + "default": {} + } + }, + "required": [ + "file_conversion", + "plots", + "inspection_plots" + ], + "title": "QA", + "type": "object" + }, + "file_conversion": { + "additionalProperties": false, + "default": {}, + "description": "Create a QA file for the observation", + "properties": { + "enabled": { + "default": true, + "description": "Do/Don't create a QA file for the observation", + "title": "enabled", + "type": "boolean" + }, + "nr_of_subbands": { + "default": -1, + "description": "Keep this number of subbands from the observation in the QA file, or all if -1", + "title": "#subbands", + "type": "integer" + }, + "nr_of_timestamps": { + "default": 256, + "description": "Extract this number of timestamps from the observation in the QA file (equidistantanly sampled, no averaging/interpolation)", + "minimum": 1, + "title": "#timestamps", + "type": "integer" + } + }, + "required": [ + "enabled", + "nr_of_subbands", + "nr_of_timestamps" + ], + "title": "File Conversion", + "type": "object" + }, + "inspection_plots": { + "decription": "Type of inspection plots to run", + "default": "msplots", + "enum": [ + "msplots", + "dynspec", + "none" + ], + "title": "Inspection Plots", + "type": "string" + }, + "plots": { + "additionalProperties": false, + "default": {}, + "description": "Create dynamic spectrum plots", + "properties": { + "autocorrelation": { + "default": true, + "description": "Create autocorrelation plots for all stations", + "title": "autocorrelation", + "type": "boolean" + }, + "crosscorrelation": { + "default": true, + "description": "Create crosscorrelation plots for all baselines", + "title": "crosscorrelation", + "type": "boolean" + }, + "enabled": { + "default": true, + "description": "Do/Don't create plots from the QA file from the observation", + "title": "enabled", + "type": "boolean" + } + }, + "required": [ + "enabled", + "autocorrelation", + "crosscorrelation" + ], + "title": "Plots", + "type": "object" + }, + "SAPs": { + "additionalItems": false, + "default": [ + {} + ], + "description": "Station beams", + "items": { + "additionalProperties": false, + "default": {}, + "headerTemplate": "{{ i0 }} - {{ self.name }}", + "properties": { + "digital_pointing": { + "$id": "#target_pointing", + "$ref": "https://tmss.lofar.eu/api/schemas/commonschematemplate/pointing/8#/definitions/pointing", + "default": {}, + "title": "Digital pointing" + }, + "name": { + "default": "_SAP_name_", + "description": "Identifier for this beam", + "minLength": 1, + "title": "Name", + "type": "string" + }, + "subbands": { + "additionalItems": false, + "default": [ + 255 + ], + "items": { + "maximum": 511, + "minimum": 0, + "title": "Subband", + "type": "integer" + }, + "maxItems": 488, + "minItems": 1, + "title": "Subband list", + "type": "array" + } + }, + "required": [ + "name", + "digital_pointing", + "subbands" + ], + "title": "SAP", + "type": "object" + }, + "minItems": 0, + "title": "SAPs", + "type": "array" + }, + "antenna_field": { + "default": "HBA", + "enum": [ + "LBA", + "HBA", + "HBA0", + "HBA1" + ], + "title": "Antenna Field", + "type": "string" + }, + "antenna_set": { + "default": "HBA_DUAL", + "description": "Fields & antennas to use", + "enum": [ + "HBA_DUAL", + "HBA_DUAL_INNER", + "HBA_ONE", + "HBA_ONE_INNER", + "HBA_ZERO", + "HBA_ZERO_INNER", + "LBA_INNER", + "LBA_OUTER", + "LBA_SPARSE_EVEN", + "LBA_SPARSE_ODD", + "LBA_ALL" + ], + "title": "Antenna set", + "type": "string" + }, + "antenna_type": { + "default": "HBA", + "enum": [ + "LBA", + "HBA" + ], + "title": "Antenna Type", + "type": "string" + }, + "antennas": { + "description": "Structure to describe a set of specific antennafields", + "properties": { + "fields": { + "default": [], + "items": { + "properties": { + "field": { + "default": "HBA", + "enum": [ + "LBA", + "HBA", + "HBA0", + "HBA1" + ], + "title": "Field", + "type": "string" + }, + "station": { + "$ref": "#/definitions/station" + }, + "type": { + "default": "HBA", + "enum": [ + "LBA", + "HBA" + ], + "title": "Type", + "type": "string" + } + }, + "required": [ + "station", + "field", + "type" + ], + "title": "Field", + "type": "object" + }, + "title": "Fields", + "type": "array" + }, + "set": { + "$ref": "#/definitions/antenna_set", + "default": "HBA_DUAL" + } + }, + "required": [ + "fields" + ], + "title": "Antennas", + "type": "object" + }, + "filter": { + "default": "HBA_110_190", + "description": "Must match antenna type", + "enum": [ + "LBA_10_90", + "LBA_30_90", + "HBA_110_190", + "HBA_210_250" + ], + "title": "Band-pass filter", + "type": "string" + }, + "max_number_of_missing_stations": { + "default": 0, + "description": "Maximum number of stations that can be omitted from a group (due to maintenance for example)", + "minimum": 0, + "title": "Maximum number of stations to omit", + "type": "integer" + }, + "station": { + "description": "These are the LOFAR stations", + "enum": [ + "CS001", + "CS002", + "CS003", + "CS004", + "CS005", + "CS006", + "CS007", + "CS011", + "CS013", + "CS017", + "CS021", + "CS024", + "CS026", + "CS028", + "CS030", + "CS031", + "CS032", + "CS101", + "CS103", + "CS201", + "CS301", + "CS302", + "CS401", + "CS501", + "RS106", + "RS205", + "RS208", + "RS210", + "RS305", + "RS306", + "RS307", + "RS310", + "RS406", + "RS407", + "RS409", + "RS503", + "RS508", + "RS509", + "DE601", + "DE602", + "DE603", + "DE604", + "DE605", + "FR606", + "SE607", + "UK608", + "DE609", + "PL610", + "PL611", + "PL612", + "IE613", + "LV614" + ], + "title": "Station", + "type": "string" + }, + "station_group": { + "anyOf": [ + { + "additionalProperties": false, + "default": { + "max_nr_missing": 0, + "stations": [ + "CS002", + "CS003", + "CS004", + "CS005", + "CS006", + "CS007" + ] + }, + "description": "The group of all stations on the Superterp", + "properties": { + "max_nr_missing": { + "$ref": "#/definitions/max_number_of_missing_stations" + }, + "stations": { + "$ref": "#/definitions/station_list", + "enum": [ + [ + "CS002", + "CS003", + "CS004", + "CS005", + "CS006", + "CS007" + ] + ] + } + }, + "required": [ + "stations", + "max_nr_missing" + ], + "title": "Superterp", + "type": "object" + }, + { + "additionalProperties": false, + "default": { + "max_nr_missing": 4, + "stations": [ + "CS001", + "CS002", + "CS003", + "CS004", + "CS005", + "CS006", + "CS007", + "CS011", + "CS013", + "CS017", + "CS021", + "CS024", + "CS026", + "CS028", + "CS030", + "CS031", + "CS032", + "CS101", + "CS103", + "CS201", + "CS301", + "CS302", + "CS401", + "CS501" + ] + }, + "description": "The group of all Core stations", + "properties": { + "max_nr_missing": { + "$ref": "#/definitions/max_number_of_missing_stations" + }, + "stations": { + "$ref": "#/definitions/station_list", + "enum": [ + [ + "CS001", + "CS002", + "CS003", + "CS004", + "CS005", + "CS006", + "CS007", + "CS011", + "CS013", + "CS017", + "CS021", + "CS024", + "CS026", + "CS028", + "CS030", + "CS031", + "CS032", + "CS101", + "CS103", + "CS201", + "CS301", + "CS302", + "CS401", + "CS501" + ] + ] + } + }, + "required": [ + "stations", + "max_nr_missing" + ], + "title": "Core", + "type": "object" + }, + { + "additionalProperties": false, + "default": { + "max_nr_missing": 4, + "stations": [ + "RS106", + "RS205", + "RS208", + "RS210", + "RS305", + "RS306", + "RS307", + "RS310", + "RS406", + "RS407", + "RS409", + "RS503", + "RS508", + "RS509" + ] + }, + "description": "The group of all Dutch remote stations", + "properties": { + "max_nr_missing": { + "$ref": "#/definitions/max_number_of_missing_stations" + }, + "stations": { + "$ref": "#/definitions/station_list", + "enum": [ + [ + "RS106", + "RS205", + "RS208", + "RS210", + "RS305", + "RS306", + "RS307", + "RS310", + "RS406", + "RS407", + "RS409", + "RS503", + "RS508", + "RS509" + ] + ] + } + }, + "required": [ + "stations", + "max_nr_missing" + ], + "title": "Remote", + "type": "object" + }, + { + "additionalProperties": false, + "default": { + "max_nr_missing": 4, + "stations": [ + "CS001", + "CS002", + "CS003", + "CS004", + "CS005", + "CS006", + "CS007", + "CS011", + "CS013", + "CS017", + "CS021", + "CS024", + "CS026", + "CS028", + "CS030", + "CS031", + "CS032", + "CS101", + "CS103", + "CS201", + "CS301", + "CS302", + "CS401", + "CS501", + "RS106", + "RS205", + "RS208", + "RS210", + "RS305", + "RS306", + "RS307", + "RS310", + "RS406", + "RS407", + "RS409", + "RS503", + "RS508", + "RS509" + ] + }, + "description": "The group of all Dutch (Core + Remote) stations", + "properties": { + "max_nr_missing": { + "$ref": "#/definitions/max_number_of_missing_stations" + }, + "stations": { + "$ref": "#/definitions/station_list", + "enum": [ + [ + "CS001", + "CS002", + "CS003", + "CS004", + "CS005", + "CS006", + "CS007", + "CS011", + "CS013", + "CS017", + "CS021", + "CS024", + "CS026", + "CS028", + "CS030", + "CS031", + "CS032", + "CS101", + "CS103", + "CS201", + "CS301", + "CS302", + "CS401", + "CS501", + "RS106", + "RS205", + "RS208", + "RS210", + "RS305", + "RS306", + "RS307", + "RS310", + "RS406", + "RS407", + "RS409", + "RS503", + "RS508", + "RS509" + ] + ] + } + }, + "required": [ + "stations", + "max_nr_missing" + ], + "title": "Dutch", + "type": "object" + }, + { + "additionalProperties": false, + "default": { + "max_nr_missing": 2, + "stations": [ + "DE601", + "DE602", + "DE603", + "DE604", + "DE605", + "DE609", + "FR606", + "SE607", + "UK608", + "PL610", + "PL611", + "PL612", + "IE613", + "LV614" + ] + }, + "description": "The group of all international stations", + "properties": { + "max_nr_missing": { + "$ref": "#/definitions/max_number_of_missing_stations" + }, + "stations": { + "$ref": "#/definitions/station_list", + "enum": [ + [ + "DE601", + "DE602", + "DE603", + "DE604", + "DE605", + "DE609", + "FR606", + "SE607", + "UK608", + "PL610", + "PL611", + "PL612", + "IE613", + "LV614" + ] + ] + } + }, + "required": [ + "stations", + "max_nr_missing" + ], + "title": "International", + "type": "object" + }, + { + "additionalProperties": false, + "default": { + "max_nr_missing": 1, + "stations": [ + "DE601", + "DE605" + ] + }, + "description": "A subgroup of the international stations which are required when doing observation with international stations", + "properties": { + "max_nr_missing": { + "$ref": "#/definitions/max_number_of_missing_stations" + }, + "stations": { + "$ref": "#/definitions/station_list", + "enum": [ + [ + "DE601", + "DE605" + ] + ] + } + }, + "required": [ + "stations", + "max_nr_missing" + ], + "title": "International required", + "type": "object" + }, + { + "additionalProperties": false, + "default": { + "max_nr_missing": 6, + "stations": [ + "CS001", + "CS002", + "CS003", + "CS004", + "CS005", + "CS006", + "CS007", + "CS011", + "CS013", + "CS017", + "CS021", + "CS024", + "CS026", + "CS028", + "CS030", + "CS031", + "CS032", + "CS101", + "CS103", + "CS201", + "CS301", + "CS302", + "CS401", + "CS501", + "RS106", + "RS205", + "RS208", + "RS210", + "RS305", + "RS306", + "RS307", + "RS310", + "RS406", + "RS407", + "RS409", + "RS503", + "RS508", + "RS509", + "DE601", + "DE602", + "DE603", + "DE604", + "DE605", + "DE609", + "FR606", + "SE607", + "UK608", + "PL610", + "PL611", + "PL612", + "IE613", + "LV614" + ] + }, + "description": "The group of all (Core + Remote + International) stations", + "properties": { + "max_nr_missing": { + "$ref": "#/definitions/max_number_of_missing_stations" + }, + "stations": { + "$ref": "#/definitions/station_list", + "enum": [ + [ + "CS001", + "CS002", + "CS003", + "CS004", + "CS005", + "CS006", + "CS007", + "CS011", + "CS013", + "CS017", + "CS021", + "CS024", + "CS026", + "CS028", + "CS030", + "CS031", + "CS032", + "CS101", + "CS103", + "CS201", + "CS301", + "CS302", + "CS401", + "CS501", + "RS106", + "RS205", + "RS208", + "RS210", + "RS305", + "RS306", + "RS307", + "RS310", + "RS406", + "RS407", + "RS409", + "RS503", + "RS508", + "RS509", + "DE601", + "DE602", + "DE603", + "DE604", + "DE605", + "DE609", + "FR606", + "SE607", + "UK608", + "PL610", + "PL611", + "PL612", + "IE613", + "LV614" + ] + ] + } + }, + "required": [ + "stations", + "max_nr_missing" + ], + "title": "All", + "type": "object" + }, + { + "additionalProperties": false, + "default": { + "max_nr_missing": 0, + "stations": [ + "CS001" + ] + }, + "description": "A custom group of stations which can be defined by the user", + "properties": { + "max_nr_missing": { + "$ref": "#/definitions/max_number_of_missing_stations" + }, + "stations": { + "$ref": "#/definitions/station_list" + } + }, + "required": [ + "stations", + "max_nr_missing" + ], + "title": "Custom", + "type": "object" + } + ], + "default": { + "max_nr_missing": 1, + "stations": [ + "CS002", + "CS003", + "CS004", + "CS005", + "CS006", + "CS007" + ] + }, + "description": "A set of predefined list of stations, and a constraint on how many stations are allowed to be missing (due to maintenance for example)", + "title": "Station group", + "type": "object" + }, + "station_groups": { + "additionalItems": false, + "additionalProperties": false, + "default": [ + { + "max_nr_missing": 1, + "stations": [ + "CS002", + "CS003", + "CS004", + "CS005", + "CS006", + "CS007" + ] + } + ], + "description": "One or more predefined or custom groups of stations", + "items": { + "$ref": "#/definitions/station_group" + }, + "minItems": 1, + "title": "Station groups", + "type": "array" + }, + "station_list": { + "additionalItems": false, + "additionalProperties": false, + "default": [], + "items": { + "$ref": "#/definitions/station" + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "station_configuration": { + "default": {}, + "properties": { + "SAPs": { + "$ref": "https://tmss.lofar.eu/api/schemas/commonschematemplate/stations/7#/definitions/SAPs", + "default": [ + {} + ], + "minItems": 1 + }, + "antenna_set": { + "$ref": "https://tmss.lofar.eu/api/schemas/commonschematemplate/stations/7#/definitions/antenna_set", + "default": "HBA_DUAL" + }, + "filter": { + "$ref": "https://tmss.lofar.eu/api/schemas/commonschematemplate/stations/7#/definitions/filter", + "default": "HBA_110_190" + }, + "station_groups": { + "$ref": "https://tmss.lofar.eu/api/schemas/commonschematemplate/stations/7#/definitions/station_groups", + "default": [ + { + "max_nr_missing": 4, + "stations": [ + "CS001", + "CS002", + "CS003", + "CS004", + "CS005", + "CS006", + "CS007", + "CS011", + "CS013", + "CS017", + "CS021", + "CS024", + "CS026", + "CS028", + "CS030", + "CS031", + "CS032", + "CS101", + "CS103", + "CS201", + "CS301", + "CS302", + "CS401", + "CS501" + ] + } + ] + }, + "tile_beam": { + "$ref": "https://tmss.lofar.eu/api/schemas/commonschematemplate/pointing/7#/definitions/pointing", + "default": {}, + "description": "HBA only", + "title": "Tile beam" + } + }, + "required": [ + "station_groups", + "antenna_set", + "filter", + "SAPs" + ], + "title": "station_configuration", + "type": "object" + }, + "task_connector": { + "additionalProperties": false, + "default": {}, + "description": "A task connector describes what a task can take as input and produces as output.", + "properties": { + "dataformat": { + "description": "The data type of a task connector describes in which format the data is produced/consumed.", + "enum": [ + "MeasurementSet", + "Beamformed", + "QA_HDF5", + "QA_Plots", + "pulp summary", + "pulp analysis" + ], + "title": "Data Format", + "type": "string" + }, + "datatype": { + "description": "The data type of a task connector describes its what kind of data is produced/consumed.", + "enum": [ + "visibilities", + "time series", + "instrument model", + "image", + "quality", + "pulsar profile" + ], + "title": "Data Type", + "type": "string" + }, + "role": { + "description": "The role of a task connector describes its intended use.", + "enum": [ + "correlator", + "beamformer", + "inspection plots", + "calibrator", + "target", + "any" + ], + "title": "Role", + "type": "string" + } + }, + "required": [ + "role", + "datatype", + "dataformat" + ], + "type": "object" + } + }, + "properties": { + "cluster_resources": { + "$ref": "https://tmss.lofar.eu/api/schemas/commonschematemplate/pipeline/7#/definitions/cluster_resources", + "default": {} + }, + "dspsr": { + "additionalProperties": false, + "default": {}, + "properties": { + "digifil": { + "additionalProperties": false, + "default": {}, + "description": "Processes single pulses in CV data if single-pulse search is enabled", + "properties": { + "channels_per_part": { + "default": 512, + "description": "Number of frequency channels per part (multiple of subbands per part).", + "maximum": 512, + "minimum": 1, + "title": "Nr of Frequency Channels", + "type": "integer" + }, + "coherent_dedispersion": { + "default": true, + "title": "Coherent Dedispersion", + "type": "boolean" + }, + "dm": { + "default": -1, + "desciption": "Dispersion Measure (-1 for none)", + "minimum": -1, + "title": "DM", + "type": "number" + }, + "integration_time_factor": { + "default": 4, + "minimum": 1, + "title": "Integration time", + "type": "integer" + } + }, + "title": "Digifil", + "type": "object" + }, + "enabled": { + "default": true, + "title": "Enabled", + "type": "boolean" + }, + "filterbank": { + "additionalProperties": false, + "default": {}, + "properties": { + "channels_per_part": { + "default": 120, + "description": "Number of frequency channels per part (multiple of subbands per part).", + "maximum": 512, + "minimum": 1, + "title": "Nr of Frequency Channels", + "type": "integer" + }, + "coherent_dedispersion": { + "default": true, + "title": "Coherent Dedispersion", + "type": "boolean" + }, + "enabled": { + "default": false, + "title": "Enabled", + "type": "boolean" + } + }, + "title": "Create extra channels", + "type": "object" + }, + "optimise_period_dm": { + "default": true, + "title": "Optimise period & DM", + "type": "boolean" + }, + "rfi_excision": { + "default": true, + "description": "Excise/clean/remove detected RFI", + "title": "RFI excision", + "type": "boolean" + }, + "single_pulse_subintegration": { + "default": false, + "description": "Create single-pulse subintegrations with inter-channel dispersion delays removed.", + "title": "Single pulse subintegration", + "type": "boolean" + }, + "subintegration_length": { + "default": -1, + "minimum": -1, + "title": "Subintegration length", + "type": "integer" + }, + "number_of_bins": { + "minimum": 2, + "title": "Number of bins", + "type": "integer" + } + }, + "title": "DSPSR", + "type": "object", + "required": [ + "enabled" + ] + }, + "output": { + "additionalProperties": false, + "default": {}, + "properties": { + "dynamic_spectrum": { + "additionalProperties": false, + "default": {}, + "properties": { + "enabled": { + "default": false, + "title": "Enabled", + "type": "boolean" + }, + "time_average": { + "default": 0.5, + "description": "Time averaging, in seconds.", + "minimum": 0.01, + "title": "Time average", + "type": "number" + } + }, + "title": "Dynamic Spectrum", + "type": "object" + }, + "quantisation": { + "additionalProperties": false, + "default": {}, + "description": "Quantise output into 8-bit samples", + "properties": { + "enabled": { + "default": false, + "title": "Enabled", + "type": "boolean" + }, + "scale": { + "default": 5, + "description": "Conversion sigma to use when converting to 8-bit samples", + "minimum": 1, + "title": "Conversion sigma", + "type": "number" + } + }, + "title": "Quantisation", + "type": "object" + } + }, + "title": "Output", + "type": "object" + }, + "presto": { + "additionalProperties": false, + "default": {}, + "properties": { + "fold_profile": { + "default": true, + "description": "Fold the pulsar profile", + "title": "Fold", + "type": "boolean" + }, + "input": { + "additionalProperties": false, + "properties": { + "decode_sigma": { + "default": 3, + "description": "Sigma threshold for decoding", + "minimum": 1, + "title": "Decode sigma", + "type": "number" + }, + "nr_blocks": { + "default": 100, + "description": "Number of blocks to read at a time", + "minimum": 1, + "title": "Nr of blocks", + "type": "integer" + }, + "samples_per_block": { + "default": 8192, + "minimum": 16, + "title": "Block size (samples)", + "type": "integer" + } + }, + "title": "Input", + "type": "object" + }, + "prepdata": { + "additionalProperties": false, + "default": {}, + "properties": { + "dm": { + "default": -1, + "desciption": "Dispersion Measure (-1 for none)", + "minimum": -1, + "title": "DM", + "type": "number" + } + }, + "title": "prepdata", + "type": "object" + }, + "prepfold": { + "default": true, + "title": "Enable prepfold", + "type": "boolean" + }, + "rfifind": { + "additionalProperties": false, + "default": {}, + "properties": { + "blocks": { + "default": 16, + "minimum": 1, + "title": "blocks", + "type": "integer" + } + }, + "title": "rfifind", + "type": "object" + }, + "rrats": { + "additionalProperties": false, + "default": {}, + "properties": { + "dm_range": { + "default": 5, + "minimum": 0, + "title": "DM range", + "type": "number" + }, + "enabled": { + "default": false, + "title": "Enabled", + "type": "boolean" + } + }, + "title": "RRATs analysis", + "type": "object" + } + }, + "title": "PRESTO", + "type": "object" + }, + "pulsar": { + "additionalProperties": false, + "default": {}, + "properties": { + "name": { + "default": "", + "description": "Name of the pulsar to fold, if strategy=manual", + "title": "Name", + "type": "string" + }, + "strategy": { + "default": "manual", + "description": "How to look up the pulsar to fold", + "enum": [ + "manual", + "meta", + "sapfind", + "sapfind3", + "tabfind", + "tabfind+" + ], + "enum_titles": [ + "Pulsar name specified here", + "SAP target is pulsar name", + "Brightest known pulsar in SAP", + "Brightest 3 known pulsars in SAP", + "Brightest known pulsar in TAB", + "Brightest 3 known pulsars in TAB" + ], + "title": "Strategy", + "type": "string" + } + }, + "title": "Pulsar to fold", + "type": "object" + }, + "single_pulse_search": { + "default": false, + "description": "Instructs PRESTO to process single pulses, and enables Digifil for CV data", + "title": "Single-pulse search", + "type": "boolean" + }, + "software_version": { + "$ref": "https://tmss.lofar.eu/api/schemas/commonschematemplate/pipeline/9#/definitions/software_version", + "default": "lofar-pulp:tmss" + } + } + }, + "type": "http://localhost:3000/api/task_type/pipeline", + "type_value": "pipeline" } ] } \ No newline at end of file diff --git a/SAS/TMSS/frontend/tmss_webapp/src/routes/Timeline/helpers/toolbar/filters.helper.test.js b/SAS/TMSS/frontend/tmss_webapp/src/routes/Timeline/helpers/toolbar/filters.helper.test.js index f89eeb225ac..8238465b1c2 100644 --- a/SAS/TMSS/frontend/tmss_webapp/src/routes/Timeline/helpers/toolbar/filters.helper.test.js +++ b/SAS/TMSS/frontend/tmss_webapp/src/routes/Timeline/helpers/toolbar/filters.helper.test.js @@ -209,6 +209,7 @@ describe("getTimelineItem", () => { desc: "test blueprint", title: "", project: "bugs", + project_task_group: "bugs#2023-07-06#tasks", project_group: "bugs#2023-07-06", name: "the_fix_1", name_group:"the_fix_1#2023-07-06", @@ -265,6 +266,7 @@ describe("getTimelineItem", () => { duration: "1.00Hrs", priority_queue: "A", priority_queue_group: "A#2023-07-06", + project_task_group: "bugs#2023-07-06#tasks", on_sky_duration: "2.00Hrs", start_time: moment("2023-07-06 10:00:00Z"), end_time: moment("2023-07-06 12:00:00Z"), @@ -312,6 +314,8 @@ describe('getReservationItem', () => { end_time: moment('2023-08-08 12:00:00'), real_end_time: "2023-08-08 12:00:00", group: "32: Aug 08 - Tue", + groupingSuffix: "#2023-08-08", + project_task_group: "123#2023-08-08", project_group: "123#2023-08-08", name: 'green grass', name_group: "green grass#2023-08-08", @@ -327,7 +331,14 @@ describe('getReservationItem', () => { stations: '-', reservationId:'1', reason:'mowing', - planned: 'yes' + planned: 'yes', + specified_stations: undefined, + reservation_start_time: moment('2023-08-08 10:00:00'), + stationsgroups: { + CS: 0, + IS: 0, + RS: 0, + }, }; @@ -342,9 +353,20 @@ describe('getReservationItem', () => { it('should return the correct reservation item (with stations)', () => { - reservation.specifications_doc.resources = { specified_stations: ['CS001', 'CS002', 'CS003'] } + reservation.specifications_doc.resources = { stations: ['CS001', 'CS002' ,'CS003'] } - expectedItem.stations = 'CS001,CS002,CS003' + expectedItem.stations = 'CS001,CS002,CS003'; + expectedItem.specified_stations = [ + "CS001", + "CS002", + "CS003", + ]; + + expectedItem.stationsgroups= { + CS: 3, + IS: 0, + RS: 0, + }; const result = getReservationItem(reservation, 0, displayDate); @@ -383,7 +405,7 @@ describe('getReservationTypeColorIndex', () => { it('should return the correct color for not fixed time and not dynamic schedulability', () => { const schedulability = { fixed_time: false, dynamic: false }; - const expectedColor = { bgColor: 'black', color: 'white' }; + const expectedColor = { bgColor: '#212121', color: 'white' }; const result = getReservationTypeColorIndex(schedulability); @@ -392,7 +414,7 @@ describe('getReservationTypeColorIndex', () => { it('should return the correct color for undefined schedulability', () => { const schedulability = {}; - const expectedColor = { bgColor: 'black', color: 'white' }; + const expectedColor = { bgColor: '#212121', color: 'white' }; const result = getReservationTypeColorIndex(schedulability); -- GitLab