diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index ab043a38a1a847a41884325cdce999a4cc6a6c66..26c089f15ee2951e4bad1cead02fa262d3de106a 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -94,6 +94,12 @@ ddecal:
   script:
     - cwltool --no-container --preserve-environment LD_LIBRARY_PATH --preserve-environment PATH --preserve-environment PYTHONPATH steps/ddecal.cwl test_jobs/ddecal.json
 
+predict:
+  stage: test_steps
+  allow_failure: true
+  script:
+    - cwltool --no-container --preserve-environment LD_LIBRARY_PATH --preserve-environment PATH --preserve-environment PYTHONPATH steps/predict.cwl test_jobs/predict.json
+
 prefactor_calibrator:
   stage: integration_test
   script:
diff --git a/steps/predict.cwl b/steps/predict.cwl
index e20f0151dcccf1f1bf0c33f52488cd78c3ccdba1..972cce51a2a479c9c41829eb3ac245748a352628 100644
--- a/steps/predict.cwl
+++ b/steps/predict.cwl
@@ -7,6 +7,11 @@ baseCommand: [DPPP]
 
 requirements:
   InlineJavascriptRequirement: {}
+  
+  InitialWorkDirRequirement:
+    listing:
+      - entry: $(inputs.msin)
+        writable: true
 
 hints:
   DockerRequirement:
@@ -16,16 +21,17 @@ arguments:
   - steps=[predict]
   - predict.beammode=array_factor
   - predict.usechannelfreq=False
+  - msout=.
 inputs:
   - id: msin
-    type: Directory?
+    type: Directory
     doc: Input Measurement Set
     inputBinding:
         prefix: msin=
         separate: false
   - id: msin_datacolumn
     type: string
-    default: SMOOTHED_DATA
+    default: DATA
     doc: Input data Column
     inputBinding:
         prefix: msin.datacolumn=
@@ -33,16 +39,17 @@ inputs:
   - id: msout_datacolumn
     type: string
     default: MODEL_DATA
-  - id: source_db
-    type: "[File, Directory]"
+  - id: sources_db
+    type: [File, Directory]
     inputBinding:
       prefix: predict.sourcedb=
       separate: false
-  - id: skymodel
+  - id: sources
     type: string[]
+    default: null
     inputBinding:
       prefix: predict.sources=
-      valueFrom: [$(self)]
+      valueFrom: "[$(self)]"
       separate: false
       itemSeparator: ','
   - id: usebeammodel
@@ -50,17 +57,11 @@ inputs:
     default: false
     inputBinding:
       prefix: predict.usebeammodel=True
-  - id: msout_name
-    type: string
-    doc: Output Measurement Set
-    default: out.MS
-    inputBinding:
-        prefix: msout=
-        separate: false
+  
 
 outputs:
   - id: msout
     doc: Output Measurement Set
     type: Directory
     outputBinding:
-      glob: $(inputs.msout_name=="."?inputs.msin:inputs.msout_name)
+      glob: $(inputs.msin.basename)
diff --git a/test_jobs/predict.json b/test_jobs/predict.json
new file mode 100644
index 0000000000000000000000000000000000000000..2a493f8755d1350243a7d0f04783dbddc2dda7ea
--- /dev/null
+++ b/test_jobs/predict.json
@@ -0,0 +1,10 @@
+{
+   "msin": {
+     "class": "Directory",
+     "path": "/data/L570745_SB001_uv_first10.MS"
+   },
+  "sources_db": {
+     "class": "File",
+     "path": "/data/A-Team_lowres.sourcedb"
+  }
+}