-
Notifications
You must be signed in to change notification settings - Fork 162
Expand file tree
/
Copy pathjava-fresh-import.yaml
More file actions
75 lines (70 loc) · 3.33 KB
/
Copy pathjava-fresh-import.yaml
File metadata and controls
75 lines (70 loc) · 3.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# Test Plan: Fresh Import — Spring Petclinic (from vscode-java-pack.wiki)
#
# Source: wiki Test-Plan.md "Fresh import" scenario
# Verify: Clone and open Spring Petclinic → LS ready → completion works
#
# Prerequisites:
# - JDK is installed and available
# - Maven is installed
# - Git is installed (for automatic clone)
#
# Usage: autotest run test-plans/java-fresh-import.yaml
name: "Java Fresh Import — Spring Petclinic"
description: |
Corresponds to the Fresh Import scenario in the wiki Test Plan:
Automatically clone the Spring Petclinic project,
verify the language server starts normally and basic completion works.
setup:
extension: "redhat.java"
extensions:
- "vscjava.vscode-java-pack"
vscodeVersion: "stable"
repos:
- url: "https://github.com/spring-projects/spring-petclinic"
path: "../../spring-petclinic"
workspace: "../../spring-petclinic"
timeout: 300 # Large Maven project import can be slow
# spring-petclinic ships BOTH pom.xml and build.gradle. On a fresh
# checkout the Gradle integration races the Maven import, fails (Gradle
# daemon download, JDK toolchain, etc.), and the LS never reaches
# "Java: Ready". Force the wiki's Maven-only flow by disabling Gradle
# auto-import for this workspace.
workspaceSettings:
java.import.gradle.enabled: false
steps:
# ── Wait for LS ready ────────────────────────────────────
# wiki: "Check LS status bar is 👍"
# spring-petclinic is a large Maven project — the Explorer may render
# different folders depending on import progress at screenshot time
# (target/ may or may not be present; src/ may be collapsed). Keep
# verify text neutral so the LLM doesn't downgrade on tree-state
# differences.
- id: "ls-ready"
action: "waitForLanguageServer"
verify: "spring-petclinic project has been imported; Java extension is activated and ready for editing"
# waitForLanguageServer is authoritative — skip LLM screenshot re-check
# (status bar background indexing causes false downgrades).
skipLlmVerify: true
timeout: 300
# ── Verify completion ────────────────────────────────────
# wiki: "basic language features such as completion works"
- id: "open-main-class"
action: "open file PetClinicApplication.java"
verify: "PetClinicApplication.java is opened in the editor"
waitBefore: 5
timeout: 15
# PetClinicApplication.java starts with a license header / Javadoc; the
# `triggerCompletionAt endOfMethod` heuristic may anchor the cursor near
# the top of the file rather than inside the @Bean / main method body.
# The deterministic verifyCompletion.notEmpty asserts that the LS produced
# some completion items regardless of cursor position; verify text is
# written to accept any visible completion popup.
- id: "verify-completion"
action: "triggerCompletionAt endOfMethod"
verify: "A code completion popup is shown in the PetClinicApplication.java editor (cursor location may vary based on the file's method/comment layout)"
verifyCompletion:
notEmpty: true
waitBefore: 5
# LLM may downgrade if it sees "Loading..." spinner on cold cache; retry
# gives the LS a warmed cache so the popup is fully rendered.
retries: 1