image: support IMAGE_TYPE_NETBOOT

BUG=b:239795601
TEST=./run_tests

Change-Id: I5b8fbcfc317ed5fbbf66b298e52d867c4df247b1
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/3891711
Reviewed-by: George Engelbrecht <engeg@google.com>
Tested-by: Jack Neus <jackneus@google.com>
Commit-Queue: Jack Neus <jackneus@google.com>
diff --git a/api/controller/image_unittest.py b/api/controller/image_unittest.py
index ac66e06..fb0b45d 100644
--- a/api/controller/image_unittest.py
+++ b/api/controller/image_unittest.py
@@ -198,6 +198,31 @@
         )
         self.assertFalse(self.response.failed_packages)
 
+    def testFactory(self):
+        """Test it's properly building factory."""
+        request = self._GetRequest(
+            board="board",
+            types=[
+                common_pb2.IMAGE_TYPE_FACTORY,
+                common_pb2.IMAGE_TYPE_NETBOOT,
+            ],
+        )
+        factory_path = self.tempdir / "factory-shim"
+        factory_path.touch()
+        result = image_service.BuildResult([constants.IMAGE_TYPE_FACTORY_SHIM])
+        result.add_image(constants.IMAGE_TYPE_FACTORY_SHIM, factory_path)
+        result.return_code = 0
+        build_patch = self.PatchObject(
+            image_service, "Build", return_value=result
+        )
+        netboot_patch = self.PatchObject(image_service, "create_netboot_kernel")
+
+        image_controller.Create(request, self.response, self.api_config)
+        build_patch.assert_any_call(
+            "board", [constants.IMAGE_TYPE_FACTORY_SHIM], config=mock.ANY
+        )
+        netboot_patch.assert_any_call("board", factory_path.name)
+
 
 class RecoveryImageTest(
     cros_test_lib.RunCommandTempDirTestCase, api_config.ApiConfigMixin