Merge branch '8784-dir-listings'
[arvados.git] / services / api / test / integration / serialized_encoding_test.rb
index 10b94351a6550ac853d05ba12556f96b3b0fd691..d7599bc00f5e55367f41cf7e3332dc99b1ec0dd6 100644 (file)
@@ -1,27 +1,55 @@
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
+
 require 'test_helper'
+require 'helpers/git_test_helper'
 
 class SerializedEncodingTest < ActionDispatch::IntegrationTest
+  include GitTestHelper
+
   fixtures :all
 
-  test "store json-encoded link with properties hash" do
-    post "/arvados/v1/links", {
-      :link => {
-        :link_class => 'test',
-        :name => 'test',
-        :properties => {:foo => :bar}
-      }.to_json,
-      :format => :json
-    }, auth(:active)
-    assert_response :success
-  end
+  {
+    api_client_authorization: {scopes: []},
+
+    human: {properties: {eye_color: 'gray'}},
+
+    job: {
+      repository: 'active/foo',
+      runtime_constraints: {docker_image: 'arvados/apitestfixture'},
+      script: 'hash',
+      script_version: 'master',
+      script_parameters: {pattern: 'foobar'},
+      tasks_summary: {todo: 0},
+    },
+
+    job_task: {parameters: {pattern: 'foo'}},
+
+    link: {link_class: 'test', name: 'test', properties: {foo: :bar}},
+
+    node: {info: {uptime: 1234}},
+
+    pipeline_instance: {
+      components: {"job1" => {parameters: {pattern: "xyzzy"}}},
+      components_summary: {todo: 0},
+      properties: {test: true},
+    },
+
+    pipeline_template: {
+      components: {"job1" => {parameters: {pattern: "xyzzy"}}},
+    },
+
+    specimen: {properties: {eye_color: 'meringue'}},
+
+    trait: {properties: {eye_color: 'brown'}},
 
-  test "store json-encoded pipeline instance with components_summary hash" do
-    post "/arvados/v1/pipeline_instances", {
-      :pipeline_instance => {
-        :components_summary => {:todo => 0}
-      }.to_json,
-      :format => :json
-    }, auth(:active)
-    assert_response :success
+    user: {prefs: {cookies: 'thin mint'}},
+  }.each_pair do |resource, postdata|
+    test "create json-encoded #{resource.to_s}" do
+      post("/arvados/v1/#{resource.to_s.pluralize}",
+           {resource => postdata.to_json}, auth(:admin_trustedclient))
+      assert_response :success
+    end
   end
 end