From 9862f49a7f45c2a9f0749b4713e10743a1d64fa3 Mon Sep 17 00:00:00 2001 From: Kris De Volder Date: Mon, 24 Apr 2017 09:41:26 -0700 Subject: [PATCH] No 'interacts with' error if resource does not exist. --- .../ide/vscode/concourse/ConcourseModel.java | 2 +- .../vscode/concourse/ConcourseEditorTest.java | 29 +++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/headless-services/concourse-language-server/src/main/java/org/springframework/ide/vscode/concourse/ConcourseModel.java b/headless-services/concourse-language-server/src/main/java/org/springframework/ide/vscode/concourse/ConcourseModel.java index ffb45787c..d4cbb1ccf 100644 --- a/headless-services/concourse-language-server/src/main/java/org/springframework/ide/vscode/concourse/ConcourseModel.java +++ b/headless-services/concourse-language-server/src/main/java/org/springframework/ide/vscode/concourse/ConcourseModel.java @@ -86,7 +86,7 @@ public class ConcourseModel { if (stepNode!=null) { StepModel step = newStep(stepNode); String resourceName = step.getResourceName(); - if (resourceName!=null) { + if (resourceName!=null && getResource(dc.getDocument(), resourceName)!=null) { Set interactions = job.getInteractedResources(); if (interactions!=null && !interactions.contains(resourceName)) { problems.accept(YamlSchemaProblems.schemaProblem("Job '"+jobName+"' does not interact with resource '"+resourceName+"'", node)); diff --git a/headless-services/concourse-language-server/src/test/java/org/springframework/ide/vscode/concourse/ConcourseEditorTest.java b/headless-services/concourse-language-server/src/test/java/org/springframework/ide/vscode/concourse/ConcourseEditorTest.java index 5685cc09c..d9a455f03 100644 --- a/headless-services/concourse-language-server/src/test/java/org/springframework/ide/vscode/concourse/ConcourseEditorTest.java +++ b/headless-services/concourse-language-server/src/test/java/org/springframework/ide/vscode/concourse/ConcourseEditorTest.java @@ -3116,6 +3116,8 @@ public class ConcourseEditorTest { ); } + + @Test public void reconcilerJobFromPassedAttributeMustInteractWithResource() throws Exception { Editor editor; @@ -3218,6 +3220,33 @@ public class ConcourseEditorTest { } + @Test public void reconcilerSkipInteractsWithChecckedForNonExistantResource() throws Exception { + //See: https://www.pivotaltracker.com/story/show/144217965 + Editor editor = harness.newEditor( + "resources:\n" + + "- name: version\n" + + " type: semver\n" + + "- name: source-repo\n" + + " type: git\n" + + "jobs:\n" + + "- name: build-it\n" + + " plan:\n" + + " - aggregate:\n" + + " - put: version\n" + + " - get: source-repo\n" + + "- name: test-it\n" + + " plan:\n" + + " - get: source-repo\n" + + " passed:\n" + + " - build-it\n" + + " - get: versi\n" + + " passed:\n" + + " - build-it" + ); + + editor.assertProblems("get: ^versi^|resource does not exist"); + } + ////////////////////////////////////////////////////////////////////////////// private void assertContextualCompletions(String conText, String textBefore, String... textAfter) throws Exception {