@@ -77,35 +77,69 @@ suite('Extension Test Suite', () => {
7777 const token = new MockCancellationToken ( false ) ;
7878 const context = new MockCompletionContext ( ) ;
7979
80- window . showInformationMessage ( 'Start all tests.' ) ;
80+ test ( 'Rejects empty documents' , done => {
81+ const provider = new ClassCompletionItemProvider ( ) ;
82+ const document = new MockTextDocument ( `` ) ;
83+ const result = provider . provideCompletionItems ( document , position , token , context ) as Thenable < CompletionItem [ ] > ;
84+
85+ result . then ( items => done ( items ) , ( ) => done ( ) ) ;
86+ } ) ;
87+
88+ test ( 'Rejects outside class attribute' , done => {
89+ const provider = new ClassCompletionItemProvider ( ) ;
90+ const document = new MockTextDocument ( `<a class=""></a>` ) ;
91+ const result = provider . provideCompletionItems ( document , position , token , context ) as Thenable < CompletionItem [ ] > ;
92+
93+ result . then ( items => done ( items ) , ( ) => done ( ) ) ;
94+ } ) ;
8195
82- test ( 'Rejects empty documents. ' , done => {
96+ test ( 'Completes from config ' , done => {
8397 const provider = new ClassCompletionItemProvider ( ) ;
84- const document = new MockTextDocument ( "" ) ;
98+ const document = new MockTextDocument ( `<a class="` ) ;
99+
100+ provider . remoteStyleSheets = [ "https://cdn.jsdelivr.net/npm/[email protected] /dist/css/bootstrap.min.css" ] ; 101+
85102 const result = provider . provideCompletionItems ( document , position , token , context ) as Thenable < CompletionItem [ ] > ;
86103
87- result . then ( items => { } , ( e ) => {
104+ result . then ( items => {
88105 try {
89- assert . strictEqual ( e , undefined ) ;
106+ assert . notStrictEqual ( items . length , 0 ) ;
90107 done ( ) ;
91108 } catch ( e ) {
92109 done ( e ) ;
93110 }
94- } ) ;
111+ } , done ) ;
95112 } ) ;
96113
97- test ( 'Rejects outside class attribute. ' , done => {
114+ test ( 'Completes from link tag ' , done => {
98115 const provider = new ClassCompletionItemProvider ( ) ;
99- const document = new MockTextDocument ( "<a class=''>" ) ;
116+ const document = new MockTextDocument ( `<link href="https://cdn.jsdelivr.net/npm/[email protected] /dist/css/bootstrap.min.css" rel="stylesheet"><a class="` ) ; 117+
118+ const result = provider . provideCompletionItems ( document , position , token , context ) as Thenable < CompletionItem [ ] > ;
119+
120+ result . then ( items => {
121+ try {
122+ assert . notStrictEqual ( items . length , 0 ) ;
123+ done ( ) ;
124+ } catch ( e ) {
125+ done ( e ) ;
126+ }
127+ } , done ) ;
128+ } ) ;
129+
130+ test ( 'Completes from style tag' , done => {
131+ const provider = new ClassCompletionItemProvider ( ) ;
132+ const document = new MockTextDocument ( `<style>.test{}</style><a class="` ) ;
133+
100134 const result = provider . provideCompletionItems ( document , position , token , context ) as Thenable < CompletionItem [ ] > ;
101135
102- result . then ( items => { } , ( e ) => {
136+ result . then ( items => {
103137 try {
104- assert . strictEqual ( e , undefined ) ;
138+ assert . strictEqual ( items . length , 1 ) ;
105139 done ( ) ;
106140 } catch ( e ) {
107141 done ( e ) ;
108142 }
109- } ) ;
143+ } , done ) ;
110144 } ) ;
111145} ) ;
0 commit comments