diff --git a/tests/fetch-zuul-cloner.yaml b/tests/fetch-zuul-cloner.yaml
index 67b471b1..70331fe1 100644
--- a/tests/fetch-zuul-cloner.yaml
+++ b/tests/fetch-zuul-cloner.yaml
@@ -24,3 +24,61 @@
           - directory | succeeded
           - cloner.stat.exists
           - cloner.stat.mode == "0755"
+
+    - name: Zuul clone something in required-projects
+      shell:
+        executable: /bin/bash
+        cmd: |
+          CLONEMAP=`mktemp`
+          function cleanup {
+              rm -f $CLONEMAP
+          }
+          trap cleanup EXIT
+          cat > $CLONEMAP << EOF
+          clonemap:
+            - name: openstack-infra/project-config
+              dest: {{ ansible_user_dir }}
+          EOF
+          /usr/zuul-env/bin/zuul-cloner -m $CLONEMAP \
+              --cache-dir /opt/git git://git.openstack.org \
+              openstack-infra/project-config
+      register: clone_with_required
+
+    - name: Check if repository was cloned
+      stat:
+        path: "{{ ansible_user_dir }}/src/git.openstack.org/openstack-infra/project-config"
+      register: with_required_stat
+
+    - name: Zuul clone something not in required-projects
+      shell:
+        executable: /bin/bash
+        cmd: |
+          CLONEMAP=`mktemp`
+          function cleanup {
+              rm -f $CLONEMAP
+          }
+          trap cleanup EXIT
+          cat > $CLONEMAP << EOF
+          clonemap:
+            - name: openstack-infra/jenkins-job-builder
+              dest: {{ ansible_user_dir }}
+          EOF
+          /usr/zuul-env/bin/zuul-cloner -m $CLONEMAP \
+              --cache-dir /opt/git git://git.openstack.org \
+              openstack-infra/jenkins-job-builder
+      ignore_errors: yes
+      register: clone_without_required
+
+    - name: Check if repository was cloned
+      stat:
+        path: "{{ ansible_user_dir }}/src/git.openstack.org/opentack-infra/jenkins-job-builder"
+      register: without_required_stat
+
+    - name: Validate zuul-cloner shim results
+      assert:
+        that:
+          - clone_with_required | succeeded
+          - clone_with_required | changed
+          - with_required_stat.stat.exists
+          - clone_without_required | failed
+          - not without_required_stat.stat.exists