1+ import * as assert from 'assert' ;
2+ import * as vscode from 'vscode' ;
3+
4+ suite ( 'Jule Extension Test Suite' , ( ) => {
5+ vscode . window . showInformationMessage ( 'Start all tests.' ) ;
6+
7+ test ( 'Extension should be present' , ( ) => {
8+ const ext = vscode . extensions . getExtension ( 'julelang.jule' ) ;
9+ assert . ok ( ext , 'Extension should be installed' ) ;
10+ } ) ;
11+
12+ test ( 'Extension should activate' , async ( ) => {
13+ const ext = vscode . extensions . getExtension ( 'julelang.jule' ) ;
14+ assert . ok ( ext , 'Extension should exist' ) ;
15+
16+ if ( ext && ! ext . isActive ) {
17+ await ext . activate ( ) ;
18+ }
19+
20+ assert . ok ( ext ?. isActive , 'Extension should be activated' ) ;
21+ } ) ;
22+
23+ test ( 'Jule language should be registered' , async ( ) => {
24+ const languages = await vscode . languages . getLanguages ( ) ;
25+ assert . ok (
26+ languages . includes ( 'jule' ) ,
27+ 'Jule language should be registered'
28+ ) ;
29+ } ) ;
30+
31+ test ( 'Jule Module language should be registered' , async ( ) => {
32+ const languages = await vscode . languages . getLanguages ( ) ;
33+ assert . ok (
34+ languages . includes ( 'julemod' ) ,
35+ 'Jule Module language should be registered'
36+ ) ;
37+ } ) ;
38+
39+ test ( 'jule.version command should be registered' , async ( ) => {
40+ const commands = await vscode . commands . getCommands ( ) ;
41+ assert . ok (
42+ commands . includes ( 'jule.version' ) ,
43+ 'jule.version command should be registered'
44+ ) ;
45+ } ) ;
46+
47+ test ( '.jule files should use jule language' , async ( ) => {
48+ const languages = await vscode . languages . getLanguages ( ) ;
49+ assert . ok (
50+ languages . includes ( 'jule' ) ,
51+ 'jule language should be available for .jule files'
52+ ) ;
53+ } ) ;
54+
55+ test ( 'Jule syntax highlighting should be configured' , async ( ) => {
56+ const ext = vscode . extensions . getExtension ( 'julelang.jule' ) ;
57+ const grammars = ext ?. packageJSON . contributes ?. grammars ;
58+
59+ assert . ok ( grammars , 'Grammars should be defined' ) ;
60+ assert . ok (
61+ grammars . some ( ( g : any ) => g . language === 'jule' ) ,
62+ 'Jule grammar should be defined'
63+ ) ;
64+ } ) ;
65+
66+ test ( 'Module syntax highlighting should be configured' , async ( ) => {
67+ const ext = vscode . extensions . getExtension ( 'julelang.jule' ) ;
68+ const grammars = ext ?. packageJSON . contributes ?. grammars ;
69+
70+ assert . ok ( grammars , 'Grammars should be defined' ) ;
71+ assert . ok (
72+ grammars . some ( ( g : any ) => g . language === 'julemod' ) ,
73+ 'Module grammar should be defined'
74+ ) ;
75+ } ) ;
76+
77+ test ( 'Snippets should be available' , async ( ) => {
78+ const ext = vscode . extensions . getExtension ( 'julelang.jule' ) ;
79+ const snippets = ext ?. packageJSON . contributes ?. snippets ;
80+
81+ assert . ok ( snippets , 'Snippets should be defined' ) ;
82+ assert . ok (
83+ snippets . some ( ( s : any ) => s . language === 'jule' ) ,
84+ 'Jule snippets should be defined'
85+ ) ;
86+ } ) ;
87+ } ) ;
0 commit comments