Skip to content

Commit 03d7b10

Browse files
author
Yvonne Yip
committed
feat(web-server): include html files as <link rel="import">
1 parent e7e4c3e commit 03d7b10

File tree

2 files changed

+20
-6
lines changed

2 files changed

+20
-6
lines changed

lib/middleware/karma.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ var common = require('./common');
1818

1919
var VERSION = require('../constants').VERSION;
2020
var SCRIPT_TAG = '<script type="%s" src="%s"></script>';
21-
var LINK_TAG = '<link type="text/css" href="%s" rel="stylesheet">';
21+
var LINK_TAG_CSS = '<link type="text/css" href="%s" rel="stylesheet">';
22+
var LINK_TAG_HTML = '<link href="%s" rel="import">';
2223
var SCRIPT_TYPE = {
2324
'.js': 'text/javascript',
2425
'.dart': 'application/dart'
@@ -88,7 +89,11 @@ var createKarmaMiddleware = function(filesPromise, serveStaticFile,
8889
}
8990

9091
if (fileExt === '.css') {
91-
return util.format(LINK_TAG, filePath);
92+
return util.format(LINK_TAG_CSS, filePath);
93+
}
94+
95+
if (fileExt === '.html') {
96+
return util.format(LINK_TAG_HTML, filePath);
9297
}
9398

9499
return util.format(SCRIPT_TAG, SCRIPT_TYPE[fileExt] || 'text/javascript', filePath);

test/unit/middleware/karma.spec.coffee

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -122,17 +122,18 @@ describe 'middleware.karma', ->
122122
it 'should serve context.html with replaced link tags', (done) ->
123123
includedFiles [
124124
new MockFile('/first.css', 'sha007')
125+
new MockFile('/second.html', 'sha678')
125126
]
126127

127128
response.once 'end', ->
128129
expect(nextSpy).not.to.have.been.called
129130
expect(response).to.beServedAs 200, 'CONTEXT\n' +
130-
'<link type="text/css" href="/absolute/first.css?sha007" rel="stylesheet">'
131+
'<link type="text/css" href="/absolute/first.css?sha007" rel="stylesheet">\n' +
132+
'<link href="/absolute/second.html?sha678" rel="import">'
131133
done()
132134

133135
callHandlerWith '/__karma__/context.html'
134136

135-
136137
it 'should serve context.html with the correct path for the script tags', (done) ->
137138
includedFiles [
138139
new MockFile('/some/abc/a.js', 'sha')
@@ -153,13 +154,17 @@ describe 'middleware.karma', ->
153154
includedFiles [
154155
new MockFile('/some/abc/a.css', 'sha1')
155156
new MockFile('/base/path/b.css', 'sha2')
157+
new MockFile('/some/abc/c.html', 'sha3')
158+
new MockFile('/base/path/d.html', 'sha4')
156159
]
157160

158161
response.once 'end', ->
159162
expect(nextSpy).not.to.have.been.called
160163
expect(response).to.beServedAs 200, 'CONTEXT\n' +
161164
'<link type="text/css" href="/absolute/some/abc/a.css?sha1" rel="stylesheet">\n' +
162-
'<link type="text/css" href="/base/b.css?sha2" rel="stylesheet">'
165+
'<link type="text/css" href="/base/b.css?sha2" rel="stylesheet">\n' +
166+
'<link href="/absolute/some/abc/c.html?sha3" rel="import">\n' +
167+
'<link href="/base/d.html?sha4" rel="import">'
163168
done()
164169

165170
callHandlerWith '/__karma__/context.html'
@@ -231,13 +236,17 @@ describe 'middleware.karma', ->
231236
includedFiles [
232237
new MockFile('/first.css')
233238
new MockFile('/base/path/b.css')
239+
new MockFile('/second.html')
240+
new MockFile('/base/path/d.html')
234241
]
235242

236243
response.once 'end', ->
237244
expect(nextSpy).not.to.have.been.called
238245
expect(response).to.beServedAs 200, 'DEBUG\n' +
239246
'<link type="text/css" href="/absolute/first.css" rel="stylesheet">\n' +
240-
'<link type="text/css" href="/base/b.css" rel="stylesheet">'
247+
'<link type="text/css" href="/base/b.css" rel="stylesheet">\n' +
248+
'<link href="/absolute/second.html" rel="import">\n' +
249+
'<link href="/base/d.html" rel="import">'
241250
done()
242251

243252
callHandlerWith '/__karma__/debug.html'

0 commit comments

Comments
 (0)