89 lines
2.4 KiB
CoffeeScript
89 lines
2.4 KiB
CoffeeScript
# This file is running in CommonJS (in Node) or as a classic Script (in the browser tests) so it can use import() within an async function, but not at the top level; and we can’t use static import.
|
||
test "dynamic import assertion", ->
|
||
{ default: secret } = await import('data:application/json,{"ofLife":42}', { assert: { type: 'json' } })
|
||
eq secret.ofLife, 42
|
||
|
||
test "assert keyword", ->
|
||
assert = 1
|
||
|
||
{ default: assert } = await import('data:application/json,{"thatIAm":42}', { assert: { type: 'json' } })
|
||
eq assert.thatIAm, 42
|
||
|
||
eqJS """
|
||
import assert from 'regression-test'
|
||
""", """
|
||
import assert from 'regression-test';
|
||
"""
|
||
|
||
|
||
test "static import assertion", ->
|
||
eqJS """
|
||
import 'data:application/json,{"foo":3}' assert { type: 'json' }
|
||
""", """
|
||
import 'data:application/json,{"foo":3}' assert {
|
||
type: 'json'
|
||
};
|
||
"""
|
||
|
||
eqJS """
|
||
import secret from 'data:application/json,{"ofLife":42}' assert { type: 'json' }
|
||
""", """
|
||
import secret from 'data:application/json,{"ofLife":42}' assert {
|
||
type: 'json'
|
||
};
|
||
"""
|
||
|
||
eqJS """
|
||
import * as secret from 'data:application/json,{"ofLife":42}' assert { type: 'json' }
|
||
""", """
|
||
import * as secret from 'data:application/json,{"ofLife":42}' assert {
|
||
type: 'json'
|
||
};
|
||
"""
|
||
|
||
# The only file types for which import assertions are currently supported are JSON (Node and browsers) and CSS (browsers), neither of which support named exports; however there’s nothing in the JavaScript grammar preventing a future supported file type from providing named exports.
|
||
eqJS """
|
||
import { foo } from './file.unknown' assert { type: 'unknown' }
|
||
""", """
|
||
import {
|
||
foo
|
||
} from './file.unknown' assert {
|
||
type: 'unknown'
|
||
};
|
||
"""
|
||
|
||
eqJS """
|
||
import file, { foo } from './file.unknown' assert { type: 'unknown' }
|
||
""", """
|
||
import file, {
|
||
foo
|
||
} from './file.unknown' assert {
|
||
type: 'unknown'
|
||
};
|
||
"""
|
||
|
||
eqJS """
|
||
import foo from 'bar' assert {}
|
||
""", """
|
||
import foo from 'bar' assert {};
|
||
"""
|
||
|
||
test "static export with assertion", ->
|
||
eqJS """
|
||
export * from 'data:application/json,{"foo":3}' assert { type: 'json' }
|
||
""", """
|
||
export * from 'data:application/json,{"foo":3}' assert {
|
||
type: 'json'
|
||
};
|
||
"""
|
||
|
||
eqJS """
|
||
export { profile } from './user.json' assert { type: 'json' }
|
||
""", """
|
||
export {
|
||
profile
|
||
} from './user.json' assert {
|
||
type: 'json'
|
||
};
|
||
"""
|