laravel-mix-glob
Version:
Laravel mix extension that add support for globs usage with an extensive concise api. For a more natural boosted productivity and dynamic. Configure once and forget about adding the files each time.
3 lines (2 loc) • 6.73 kB
JavaScript
"use strict";var s=require("./index.js");require("../../Glob/Glob.js"),require("fast-glob");var e=require("../../Glob/OutConfig/index.js"),i=require("path");function c(e,i){i.forEach(((i,c)=>{const{srcFile:a,outConfig:n,mixFuncName:u,expected:t}=i;test(i.name?`${e}: ${i.name}`:`${e}: test of index ${c}`,(()=>{expect(s.mapSrcFile(a,u,n)).toBe(t)}))}))}describe("Wrong base",(()=>{function i(e,i,c){try{s.mapSrcFile(e,i,c),fail("Should have failed. Because the base is not a base for the provided file")}catch(s){expect(s.message).toContain("base is not a base for the file src!")}}test("for string",(()=>{i("src/some/main.js","js",new e.OutConfig({outMap:"public/js",baseMap:"src/wrongBase"}))})),test("for output file",(()=>{i("src/some/main.js","js",new e.OutConfig({outMap:"public/js",baseMap:()=>"src/wrongBase"}))}))})),describe("Base system without specifier",(()=>{c("string options",[{mixFuncName:"js",srcFile:"src/base/main.js",outConfig:new e.OutConfig({outMap:"public/js",baseMap:"src/base"}),expected:"public/js/main.js"},{mixFuncName:"js",srcFile:"src/base/main.js",outConfig:new e.OutConfig({outMap:"public/js",baseMap:"src/base/"}),expected:"public/js/main.js"},{mixFuncName:"js",srcFile:"src/base/main.js",outConfig:new e.OutConfig({outMap:"public/js/",baseMap:"src/base"}),expected:"public/js/main.js"}]),c("function map options",[{mixFuncName:"js",srcFile:"src/base/main.js",outConfig:new e.OutConfig({outMap:s=>s.includes("main.js")?"public":"public/js",baseMap:"src/base"}),expected:"public/main.js"},{mixFuncName:"js",srcFile:"src/base/home.js",outConfig:new e.OutConfig({outMap:s=>s.includes("main.js")?"public":"public/js",baseMap:"src/base"}),expected:"public/js/home.js"},{mixFuncName:"js",srcFile:"src/base/main.js",outConfig:new e.OutConfig({outMap:s=>s.includes("main.js")?"public":"public/js",baseMap:()=>"src/base"}),expected:"public/main.js"}])})),describe("Base system with specifier",(()=>{c("string options",[{mixFuncName:"js",srcFile:"src/base/main.compile.js",outConfig:new e.OutConfig({outMap:"public/js",baseMap:"src/base",specifier:"compile"}),expected:"public/js/main.js"},{mixFuncName:"js",srcFile:"src/base/main.js",outConfig:new e.OutConfig({outMap:"public/js",baseMap:"src/base/",specifier:"compile"}),expected:"public/js/main.js"}]),c("function map options",[{mixFuncName:"js",srcFile:"src/base1/main.compile.js",outConfig:new e.OutConfig({outMap:s=>s.includes("main.compile.js")?"public":"public/js",baseMap:"src/base1",specifier:s=>s.includes("src/base2")?"mix":"compile"}),expected:"public/main.js"},{mixFuncName:"js",srcFile:"src/base2/main.compile.js",outConfig:new e.OutConfig({outMap:s=>s.includes("main.compile.js")?"public":"public/js",baseMap:"src/base2",specifier:s=>s.includes("src/base2")?"mix":"compile"}),expected:"public/main.compile.js"},{mixFuncName:"js",srcFile:"src/base2/main.mix.js",outConfig:new e.OutConfig({outMap:s=>s.includes("main.js")?"public":"public/js",baseMap:"src/base2",specifier:s=>s.includes("src/base2")?"mix":"compile"}),expected:"public/js/main.js"},{mixFuncName:"js",srcFile:"src/base/home.compile.js",outConfig:new e.OutConfig({outMap:s=>s.includes("main.js")?"public":"public/js",baseMap:"src/base",specifier:s=>s.includes("src/base2")?"mix":"compile"}),expected:"public/js/home.js"}])})),describe("No base system direct mapping",(()=>{c("Direct map",[{mixFuncName:"js",srcFile:"src/some/main.js",outConfig:new e.OutConfig({outMap:s=>s.replace("src/","public/js/")}),expected:"public/js/some/main.js"},{mixFuncName:"js",srcFile:"src/some/main.js",outConfig:new e.OutConfig({outMap:()=>"public/js/some/main.js"}),expected:"public/js/some/main.js"}]),c("Direct map with specifier",[{name:"Specifier given for an out map function (expected to have no effect)",mixFuncName:"js",srcFile:"src/some/main.c.js",outConfig:new e.OutConfig({outMap:s=>s.replace("src/","public/js/"),specifier:"c"}),expected:"public/js/some/main.c.js"},{name:"Specifier with out as a string",mixFuncName:"js",srcFile:"src/some/main.c.js",outConfig:new e.OutConfig({outMap:"public/js/",specifier:"c"}),expected:"public/js/main.js"}])})),describe("Test Extensions resolving",(()=>{c("extension resolving in base system",[{mixFuncName:"js",srcFile:"src/base/main.js",outConfig:new e.OutConfig({outMap:s=>s.includes("main.js")?"public":"public/js",baseMap:"src/base"}),expected:"public/main.js"},{mixFuncName:"sass",srcFile:"src/base/main.js.scss",outConfig:new e.OutConfig({outMap:s=>s.includes("main.js")?"public":"public/css",baseMap:"src/base"}),expected:"public/main.js.css"},{mixFuncName:"sass",srcFile:"src/base/some.js.scss",outConfig:new e.OutConfig({outMap:s=>s.includes("main.js")?"public":"public/css",baseMap:"src/base"}),expected:"public/css/some.js.css"},{mixFuncName:"sass",srcFile:"src/base/some.scss",outConfig:new e.OutConfig({outMap:s=>s.includes("main.js")?"public":"public/css",baseMap:"src/base"}),expected:"public/css/some.css"},{name:"With specifier",mixFuncName:"sass",srcFile:"src/base/some.c.scss",outConfig:new e.OutConfig({outMap:s=>s.includes("main.js")?"public":"public/css",baseMap:"src/base",specifier:"c"}),expected:"public/css/some.css"}]),c("extension resolving in out only mode",[{name:"outMap not a string but rather a function mapping (expecting no effect)",mixFuncName:"js",srcFile:"src/base/main.js",outConfig:new e.OutConfig({outMap:s=>s.includes("main.js")?"public/main.css":i.resolve(`public/js/${s.replace("src/base/","")}`)}),expected:"public/main.css"},{name:"outMap a string (out dir) [take effect]",mixFuncName:"js",srcFile:"src/base/main.js",outConfig:new e.OutConfig({outMap:"js/"}),expected:"js/main.js"},{name:"outMap a string (out dir) 2 [take effect]",mixFuncName:"sass",srcFile:"src/base/styles.scss",outConfig:new e.OutConfig({outMap:"css/"}),expected:"css/styles.css"},{name:"outMap a string (out dir) and with specifier 1 [take effect]",mixFuncName:"sass",srcFile:"src/base/styles.c.scss",outConfig:new e.OutConfig({outMap:"css/",specifier:"c"}),expected:"css/styles.css"}]),c("mix custom plugins functions (not original)",[{name:"swc - js 1",mixFuncName:"swc",srcFile:"src/base/swc.js",outConfig:new e.OutConfig({outMap:s=>s.includes("main.js")?"public/main.css":i.join(`public/js/${s.replace("src/base/","")}`)}),expected:"public/js/swc.js"},...[".js",".cjs",".mjs",".jsx",".ts",".cts",".mts",".tsx"].map((s=>({name:`swc - ${s}`,mixFuncName:"swc",srcFile:`src/base/main${s}`,outConfig:new e.OutConfig({outMap:"js/"}),expected:"js/main.js"}))),...[".scss",".sass",".styl",".css",".less",".stylus"].map((s=>({name:`cssExt - ${s}`,mixFuncName:"cssExt",srcFile:`src/base/styles.c${s}`,outConfig:new e.OutConfig({outMap:"css/",specifier:"c"}),expected:"css/styles.css"})))])}));
//# sourceMappingURL=index.test.js.map