Module
x/ruck/assertImportMap.test.mjs
Ruck is an open source buildless React web application framework for Deno.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291// @ts-check
import { assertIsError, fail } from "std/testing/asserts.ts";
import assertImportMap from "./assertImportMap.mjs";
Deno.test( "`assertImportMap` with import map invalid, not an object.", () => { try { assertImportMap(null); fail(); } catch (error) { assertIsError(error, TypeError, "Invalid import map."); assertIsError(error.cause, TypeError, "Import map must be an object."); } },);
Deno.test( "`assertImportMap` with import map invalid, property `imports` not an object.", () => { try { assertImportMap( Object.freeze({ imports: null, }), ); fail(); } catch (error) { assertIsError(error, TypeError, "Invalid import map."); assertIsError( error.cause, TypeError, "Import map property `imports` must be an object.", ); } },);
Deno.test( "`assertImportMap` with import map invalid, property `imports` containing an entry with key empty.", () => { try { assertImportMap( Object.freeze({ imports: Object.freeze({ "": "/", }), }), ); fail(); } catch (error) { assertIsError(error, TypeError, "Invalid import map."); assertIsError( error.cause, TypeError, "Import map property `imports` mustn’t contain an empty key.", ); } },);
Deno.test( "`assertImportMap` with import map invalid, property `imports` containing an entry with value a non string.", () => { try { assertImportMap( Object.freeze({ imports: Object.freeze({ "a": true, }), }), ); fail(); } catch (error) { assertIsError(error, TypeError, "Invalid import map."); assertIsError( error.cause, TypeError, "Import map property `imports` property `a` must be a string.", ); } },);
Deno.test( "`assertImportMap` with import map invalid, property `imports` containing an entry with value an empty string.", () => { try { assertImportMap( Object.freeze({ imports: Object.freeze({ "a": "", }), }), ); fail(); } catch (error) { assertIsError(error, TypeError, "Invalid import map."); assertIsError( error.cause, TypeError, "Import map property `imports` property `a` must be a non empty string.", ); } },);
Deno.test( "`assertImportMap` with import map invalid, property `scopes` not an object.", () => { try { assertImportMap( Object.freeze({ scopes: null, }), ); fail(); } catch (error) { assertIsError(error, TypeError, "Invalid import map."); assertIsError( error.cause, TypeError, "Import map property `scopes` must be an object.", ); } },);
Deno.test( "`assertImportMap` with import map invalid, property `scopes` containing an entry with key empty.", () => { try { assertImportMap( Object.freeze({ scopes: Object.freeze({ "": "/", }), }), ); fail(); } catch (error) { assertIsError(error, TypeError, "Invalid import map."); assertIsError( error.cause, TypeError, "Import map property `scopes` mustn’t contain an empty key.", ); } },);
Deno.test( "`assertImportMap` with import map invalid, property `scopes` containing an entry with value not an object.", () => { try { assertImportMap( Object.freeze({ scopes: Object.freeze({ "a": null, }), }), ); fail(); } catch (error) { assertIsError(error, TypeError, "Invalid import map."); assertIsError( error.cause, TypeError, "Import map property `scopes` property `a` must be an object.", ); } },);
Deno.test( "`assertImportMap` with import map invalid, property `scopes` containing an entry that contains an entry with key empty.", () => { try { assertImportMap( Object.freeze({ scopes: Object.freeze({ "/a/": Object.freeze({ "": "/c", }), }), }), ); fail(); } catch (error) { assertIsError(error, TypeError, "Invalid import map."); assertIsError( error.cause, TypeError, "Import map property `scopes` property `/a/` mustn’t contain an empty key.", ); } },);
Deno.test( "`assertImportMap` with import map invalid, property `scopes` containing an entry that contains an entry with value not a string.", () => { try { assertImportMap( Object.freeze({ scopes: Object.freeze({ "/a/": Object.freeze({ "b": true, }), }), }), ); fail(); } catch (error) { assertIsError(error, TypeError, "Invalid import map."); assertIsError( error.cause, TypeError, "Import map property `scopes` property `/a/` property `b` must be a string.", ); } },);
Deno.test( "`assertImportMap` with import map invalid, property `scopes` containing an entry that contains an entry with value an empty string.", () => { try { assertImportMap( Object.freeze({ scopes: Object.freeze({ "/a/": Object.freeze({ "b": "", }), }), }), ); fail(); } catch (error) { assertIsError(error, TypeError, "Invalid import map."); assertIsError( error.cause, TypeError, "Import map property `scopes` property `/a/` property `b` must be a non empty string.", ); } },);
Deno.test( "`assertImportMap` with import map valid, property `imports` without entries.", () => { assertImportMap( Object.freeze({ imports: Object.freeze({}), }), ); },);
Deno.test( "`assertImportMap` with import map valid, property `scopes` without entries.", () => { assertImportMap( Object.freeze({ imports: Object.freeze({}), }), ); },);
Deno.test( "`assertImportMap` with import map valid, properties `imports` and `scopes` with entries.", () => { assertImportMap( Object.freeze({ imports: Object.freeze({ "a/": "/a/", }), scopes: Object.freeze({ "/a/": Object.freeze({ "b": "/c", }), }), }), ); },);