mirror of https://github.com/sveltejs/svelte
				
				
				
			chore(test): move some error tests out of runtime (#8600)
	
		
	
				
					
				
			
							parent
							
								
									f223bc1c53
								
							
						
					
					
						commit
						c2cec9597e
					
				@ -0,0 +1,48 @@
 | 
				
			|||||||
 | 
					import * as fs from 'node:fs';
 | 
				
			||||||
 | 
					import * as path from 'node:path';
 | 
				
			||||||
 | 
					import { assert, describe, expect, it } from 'vitest';
 | 
				
			||||||
 | 
					import { compile } from '../../compiler.mjs';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const configs = import.meta.glob('./samples/*/_config.js', { import: 'default', eager: true });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					describe('compiler-errors', () => {
 | 
				
			||||||
 | 
						function run_test(dir) {
 | 
				
			||||||
 | 
							if (dir[0] === '.') return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							const config = configs[`./samples/${dir}/_config.js`];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							assert.ok(config, `Missing config for ${dir}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							const solo = config.solo || /\.solo/.test(dir);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							const it_fn = config.skip ? it.skip : solo ? it.only : it;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							it_fn(dir, () => {
 | 
				
			||||||
 | 
								const cwd = path.resolve(`${__dirname}/samples/${dir}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								const compileOptions = Object.assign({}, config.compileOptions || {}, {
 | 
				
			||||||
 | 
									format: 'cjs',
 | 
				
			||||||
 | 
									immutable: config.immutable,
 | 
				
			||||||
 | 
									accessors: 'accessors' in config ? config.accessors : true,
 | 
				
			||||||
 | 
									generate: 'dom'
 | 
				
			||||||
 | 
								});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								try {
 | 
				
			||||||
 | 
									compile(fs.readFileSync(`${cwd}/main.svelte`, 'utf-8'), compileOptions);
 | 
				
			||||||
 | 
								} catch (error) {
 | 
				
			||||||
 | 
									if (typeof config.error === 'function') {
 | 
				
			||||||
 | 
										config.error(assert, error);
 | 
				
			||||||
 | 
									} else {
 | 
				
			||||||
 | 
										expect(error.message).toMatch(config.error);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									return;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								assert.fail('Expected an error');
 | 
				
			||||||
 | 
							});
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						const samples = fs.readdirSync(`${__dirname}/samples`);
 | 
				
			||||||
 | 
						samples.forEach((sample) => run_test(sample));
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
@ -1,5 +1,5 @@
 | 
				
			|||||||
<script>
 | 
					<script>
 | 
				
			||||||
	import Nested from './Nested.svelte';
 | 
						import Nested from './irrelevant';
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<Nested>
 | 
					<Nested>
 | 
				
			||||||
@ -1,5 +1,5 @@
 | 
				
			|||||||
<script>
 | 
					<script>
 | 
				
			||||||
	import Nested from './Nested.svelte';
 | 
						import Nested from './irrelevant';
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<Nested>
 | 
					<Nested>
 | 
				
			||||||
@ -1,5 +1,5 @@
 | 
				
			|||||||
<script>
 | 
					<script>
 | 
				
			||||||
	import Nested from './Nested.svelte';
 | 
						import Nested from './irrelevant';
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<Nested>
 | 
					<Nested>
 | 
				
			||||||
@ -1,5 +1,5 @@
 | 
				
			|||||||
<script>
 | 
					<script>
 | 
				
			||||||
	import Nested from './Nested.svelte';
 | 
						import Nested from './irrelevant';
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<Nested>
 | 
					<Nested>
 | 
				
			||||||
@ -1,5 +1,4 @@
 | 
				
			|||||||
export default {
 | 
					export default {
 | 
				
			||||||
	error: [
 | 
						error:
 | 
				
			||||||
		"Element with a slot='...' attribute must be a child of a component or a descendant of a custom element"
 | 
							"Element with a slot='...' attribute must be a child of a component or a descendant of a custom element"
 | 
				
			||||||
	]
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
@ -1,5 +1,5 @@
 | 
				
			|||||||
<script>
 | 
					<script>
 | 
				
			||||||
  import Nested from "./Nested.svelte";
 | 
					  import Nested from './irrelevant';
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<Nested>
 | 
					<Nested>
 | 
				
			||||||
@ -1,5 +1,4 @@
 | 
				
			|||||||
export default {
 | 
					export default {
 | 
				
			||||||
	error: [
 | 
						error:
 | 
				
			||||||
		"Element with a slot='...' attribute must be a child of a component or a descendant of a custom element"
 | 
							"Element with a slot='...' attribute must be a child of a component or a descendant of a custom element"
 | 
				
			||||||
	]
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
@ -1,5 +1,5 @@
 | 
				
			|||||||
<script>
 | 
					<script>
 | 
				
			||||||
  import Nested from "./Nested.svelte";
 | 
					  import Nested from './irrelevant';
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<Nested>
 | 
					<Nested>
 | 
				
			||||||
@ -1,5 +1,4 @@
 | 
				
			|||||||
export default {
 | 
					export default {
 | 
				
			||||||
	error: [
 | 
						error:
 | 
				
			||||||
		"Element with a slot='...' attribute must be a child of a component or a descendant of a custom element"
 | 
							"Element with a slot='...' attribute must be a child of a component or a descendant of a custom element"
 | 
				
			||||||
	]
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
@ -1,5 +1,5 @@
 | 
				
			|||||||
<script>
 | 
					<script>
 | 
				
			||||||
	import Nested from "./Nested.svelte";
 | 
						import Nested from './irrelevant';
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<Nested>
 | 
					<Nested>
 | 
				
			||||||
@ -1,5 +1,5 @@
 | 
				
			|||||||
<script context="module">
 | 
					<script context="module">
 | 
				
			||||||
	import foo from './foo.js';
 | 
						const foo = {};
 | 
				
			||||||
	const answer = $foo;
 | 
						const answer = $foo;
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1 +0,0 @@
 | 
				
			|||||||
<slot value="Hi" />
 | 
					 | 
				
			||||||
@ -1 +0,0 @@
 | 
				
			|||||||
<slot value="Hi" />
 | 
					 | 
				
			||||||
@ -1 +0,0 @@
 | 
				
			|||||||
<slot />
 | 
					 | 
				
			||||||
@ -1 +0,0 @@
 | 
				
			|||||||
<slot value="Hi" />
 | 
					 | 
				
			||||||
@ -1 +0,0 @@
 | 
				
			|||||||
<slot name="slot2"></slot>
 | 
					 | 
				
			||||||
@ -1 +0,0 @@
 | 
				
			|||||||
<slot name="slot2"></slot>
 | 
					 | 
				
			||||||
@ -1 +0,0 @@
 | 
				
			|||||||
<slot name="slot2"></slot>
 | 
					 | 
				
			||||||
@ -1,3 +0,0 @@
 | 
				
			|||||||
import { writable } from 'svelte/store';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export default writable(42);
 | 
					 | 
				
			||||||
					Loading…
					
					
				
		Reference in new issue