Add test for bosh release sub-properties
This commit is contained in:
@@ -50,18 +50,18 @@ public class BoshDeploymentManifestSchema implements YamlSchema {
|
||||
TYPE_UTIL = f.TYPE_UTIL;
|
||||
|
||||
TOPLEVEL_TYPE = f.ybean("BoshDeploymentManifest");
|
||||
addProp(TOPLEVEL_TYPE, "name", t_ne_string);
|
||||
addProp(TOPLEVEL_TYPE, "director_uuid", t_ne_string);
|
||||
addProp(TOPLEVEL_TYPE, "name", t_ne_string).isRequired(true);
|
||||
addProp(TOPLEVEL_TYPE, "director_uuid", t_ne_string).isRequired(true);
|
||||
|
||||
YAtomicType t_version = f.yatomic("Version");
|
||||
t_version.addHints("latest");
|
||||
t_version.parseWith(ValueParsers.NE_STRING);
|
||||
|
||||
YBeanType t_release = f.ybean("Release");
|
||||
addProp(t_release, "name", t_ne_string);
|
||||
addProp(t_release, "version", t_version);
|
||||
addProp(t_release, "name", t_ne_string).isRequired(true);
|
||||
addProp(t_release, "version", t_version).isRequired(true);
|
||||
|
||||
addProp(TOPLEVEL_TYPE, "releases", f.yseq(t_release));
|
||||
addProp(TOPLEVEL_TYPE, "releases", f.yseq(t_release)).isRequired(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -14,6 +14,7 @@ import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.springframework.ide.vscode.bosh.BoshLanguageServer;
|
||||
import org.springframework.ide.vscode.commons.util.text.LanguageId;
|
||||
import org.springframework.ide.vscode.commons.yaml.reconcile.YamlSchemaProblems;
|
||||
import org.springframework.ide.vscode.languageserver.testharness.Editor;
|
||||
import org.springframework.ide.vscode.languageserver.testharness.LanguageServerHarness;
|
||||
|
||||
@@ -70,4 +71,42 @@ public class BoshEditorTest {
|
||||
);
|
||||
}
|
||||
|
||||
@Test public void releasesBlockCompletions() throws Exception {
|
||||
Editor editor = harness.newEditor(
|
||||
"releases:\n" +
|
||||
"- <*>"
|
||||
);
|
||||
editor.ignoreProblem(YamlSchemaProblems.MISSING_PROPERTY);
|
||||
editor.assertCompletions(
|
||||
"releases:\n" +
|
||||
"- name: <*>"
|
||||
, //========
|
||||
"releases:\n" +
|
||||
"- version: <*>"
|
||||
);
|
||||
}
|
||||
|
||||
@Test public void releasesBlockReconcileAndHovers() throws Exception {
|
||||
Editor editor = harness.newEditor(
|
||||
"releases:\n" +
|
||||
"- name: some-release\n" +
|
||||
" version: some-version\n" +
|
||||
" woot: dunno\n"
|
||||
);
|
||||
editor.ignoreProblem(YamlSchemaProblems.MISSING_PROPERTY);
|
||||
editor.assertProblems(
|
||||
"woot|Unknown property"
|
||||
);
|
||||
|
||||
editor.assertHoverContains("name", "Name of a release used in the deployment");
|
||||
editor.assertHoverContains("version", "The version of the release to use");
|
||||
|
||||
editor = harness.newEditor(
|
||||
"releases:\n" +
|
||||
"- name: some-release\n" +
|
||||
" version: <*>\n"
|
||||
);
|
||||
editor.assertCompletionLabels("latest");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user