Skip to content

Commit dca7d9a

Browse files
authored
Merge pull request #260 from Bijikyu/q/update-injectcss-and-extend-browser-test
Return link element from injectCss
2 parents e50054f + 5928924 commit dca7d9a

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

index.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -184,9 +184,11 @@ function injectCss(){ // handles runtime stylesheet loading logic
184184
link.href = `${basePath}${cssFile}`; // resolves href using whichever file exists
185185
link.onerror = () => { link.onerror = null; link.href = `${basePath}qore.css`; console.log(`injectCss fallback to ${link.href}`); }; // disables handler then swaps to qore.css on load failure
186186
document.head.appendChild(link); // injects stylesheet into document
187-
console.log(`injectCss is returning ${cssFile}`); // logs resolved filename when hashed file loads
187+
console.log(`injectCss is returning ${link}`); // logs link element when hashed file loads
188+
return link; // returns newly created link element for external use
188189
} else {
189-
console.log(`injectCss is returning ${existing.href}`); // logs reuse of previously injected link
190+
console.log(`injectCss is returning ${existing}`); // logs reuse of previously injected link element
191+
return existing; // returns existing link element to caller
190192
}
191193
} catch(err){
192194
console.error('injectCss failed:', err.message); // logs any runtime failure

test/index.norequire.browser.test.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,14 @@ describe('browser without require', {concurrency:false}, () => {
1414
assert.ok(dom.window.qorecss); // confirms global API exposed
1515
dom.window.close();
1616
});
17+
18+
it('injectCss returns link element reference', () => {
19+
const dom = new JSDOM('<!DOCTYPE html><html><head></head><body></body></html>', {runScripts:'dangerously', url:'https://example.com/'});
20+
const script = fs.readFileSync(path.resolve(__dirname, '../index.js'), 'utf8');
21+
dom.window.eval(script); // executes script globally to expose injectCss
22+
const first = dom.window.document.querySelector('link');
23+
const returned = dom.window.injectCss(); // calls function again expecting same link
24+
assert.strictEqual(returned, first); // verifies returned element matches existing link
25+
dom.window.close();
26+
});
1727
});

0 commit comments

Comments
 (0)