Bladeren bron

Merge pull request #123 from gchq/feature-comment

Feature: 'Comment' operation
n1474335 8 jaren geleden
bovenliggende
commit
c7611fbc05
4 gewijzigde bestanden met toevoegingen van 59 en 0 verwijderingen
  1. 14 0
      src/core/FlowControl.js
  2. 1 0
      src/core/config/Categories.js
  3. 14 0
      src/core/config/OperationConfig.js
  4. 30 0
      test/tests/operations/FlowControl.js

+ 14 - 0
src/core/FlowControl.js

@@ -193,6 +193,20 @@ const FlowControl = {
         return state;
     },
 
+
+    /**
+     * Comment operation.
+     *
+     * @param {Object} state - The current state of the recipe.
+     * @param {number} state.progress - The current position in the recipe.
+     * @param {Dish} state.dish - The Dish being operated on.
+     * @param {Operation[]} state.opList - The list of operations in the recipe.
+     * @returns {Object} The updated state of the recipe.
+     */
+    runComment: function(state) {
+        return state;
+    },
+
 };
 
 export default FlowControl;

+ 1 - 0
src/core/config/Categories.js

@@ -295,6 +295,7 @@ const Categories = [
             "Jump",
             "Conditional Jump",
             "Return",
+            "Comment"
         ]
     },
 ];

+ 14 - 0
src/core/config/OperationConfig.js

@@ -162,6 +162,20 @@ const OperationConfig = {
         flowControl: true,
         args: []
     },
+    "Comment": {
+        description: "Provides a place to write comments within the flow of the recipe. This operation has no computational effect.",
+        run: FlowControl.runComment,
+        inputType: "string",
+        outputType: "string",
+        flowControl: true,
+        args: [
+            {
+                name: "",
+                type: "text",
+                value: ""
+            }
+        ]
+    },
     "From Base64": {
         description: "Base64 is a notation for encoding arbitrary byte data using a restricted set of symbols that can be conveniently used by humans and processed by computers.<br><br>This operation decodes data from an ASCII Base64 string back into its raw format.<br><br>e.g. <code>aGVsbG8=</code> becomes <code>hello</code>",
         run: Base64.runFrom,

+ 30 - 0
test/tests/operations/FlowControl.js

@@ -111,4 +111,34 @@ TestRegister.addTests([
             },
         ],
     },
+    {
+        name: "Comment: nothing",
+        input: "",
+        expectedOutput: "",
+        recipeConfig: [
+            {
+                "op": "Comment",
+                "args": [""]
+            }
+        ]
+    },
+    {
+        name: "Fork, Comment, Base64",
+        input: "cat\nsat\nmat",
+        expectedOutput: "Y2F0\nc2F0\nbWF0\n",
+        recipeConfig: [
+            {
+                "op": "Fork",
+                "args": ["\\n", "\\n", false]
+            },
+            {
+                "op": "Comment",
+                "args": ["Testing 123"]
+            },
+            {
+                "op": "To Base64",
+                "args": ["A-Za-z0-9+/="]
+            }
+        ]
+    },
 ]);