Skip to content

Commit dc7af5e

Browse files
committed
More tests
1 parent e21cb30 commit dc7af5e

File tree

1 file changed

+45
-11
lines changed

1 file changed

+45
-11
lines changed

src/test/suite/extension.test.ts

Lines changed: 45 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)