Fix resolution of Astro.resolve in nested components (#1213)

* Fix resolution of Astro.resolve in nested components

Components were previously tested, however nested folders were not.

* Adds a changeset
This commit is contained in:
Matthew Phillips 2021-08-24 13:38:07 -04:00 committed by GitHub
parent d0e7fcfc06
commit 9482fadeb8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 14 additions and 5 deletions

View file

@ -0,0 +1,5 @@
---
'astro': patch
---
Makes sure Astro.resolve works in nested component folders

View file

@ -169,10 +169,6 @@ async function __render(props, ...children) {
value: (props[__astroInternal] && props[__astroInternal].isPage) || false,
enumerable: true
},
resolve: {
value: (props[__astroContext] && props[__astroContext].resolve) || {},
enumerable: true
},
request: {
value: (props[__astroContext] && props[__astroContext].request) || {},
enumerable: true
@ -201,7 +197,6 @@ export async function __renderPage({request, children, props, css}) {
value: {
pageCSS: css,
request,
resolve: __TopLevelAstro.resolve,
createAstroRootUID(seed) { return seed + astroRootUIDCounter++; },
},
writable: false,

View file

@ -48,6 +48,7 @@ Global('Astro.resolve in development', async (context) => {
const html = result.contents;
const $ = doc(html);
assert.equal($('img').attr('src'), '/_astro/src/images/penguin.png');
assert.equal($('#inner-child img').attr('src'), '/_astro/src/components/nested/images/penguin.png');
});
Global.run();

View file

@ -0,0 +1,6 @@
---
const penguinUrl = Astro.resolve('./images/penguin.png');
---
<div id="inner-child">
<img src={penguinUrl} />
</div>

View file

@ -1,5 +1,6 @@
---
import Child from '../components/ChildResolve.astro';
import InnerChild from '../components/nested/InnerChild.astro';
---
<html>
@ -8,5 +9,6 @@ import Child from '../components/ChildResolve.astro';
</head>
<body>
<Child />
<InnerChild />
</body>
</html>