feat!: use macro call name for scss module name in usey

This commit is contained in:
Yiffy Dev 2024-11-02 09:56:15 +05:00 • committed by spushk
commit e91086e26f
Signed by: spushk
GPG key ID: 7797B761E105E8AA
3 changed files with 95 additions and 4 deletions

View file

@ -0,0 +1,84 @@
use std::{collections::HashSet, fs};
use sabry_procmacro::{sassy, usey};
sassy!(scmod:scss {"
@mixin abc(){
color: red;
}
.sel1{
@include abc;
}
"});
sassy!(samod:sass {"
@mixin abc()
color: green
.sel1
@include abc
"});
sassy!(scmicromod:scss "sabry_procmacro/tests/scmicro.scss");
sassy!(samicromod:sass "sabry_procmacro/tests/samicro.sass");
#[test]
fn sassy_contract() {
assert_eq!(scmod!(syntax), "scss");
assert_eq!(
scmod!(),
"
@mixin abc(){
color: red;
}
.sel1{
@include abc;
}
"
);
assert_eq!(scmicromod!(syntax), "scss");
assert_eq!(
scmicromod!(),
fs::read_to_string("tests/scmicro.scss").unwrap()
);
assert_eq!(samod!(syntax), "sass");
assert_eq!(
samod!(),
"
@mixin abc()
color: green
.sel1
@include abc
"
);
assert_eq!(samicromod!(syntax), "sass");
assert_eq!(
samicromod!(),
fs::read_to_string("tests/samicro.sass").unwrap()
);
}
#[test]
fn usey_contract() {
use samicromod as aliasedmod;
let _usey = usey!(aliasedmod!(), scmicromod!());
let expect_modules =
HashSet::from(["aliasedmod.sass".to_string(), "scmicromod.scss".to_string()]);
let expect_codes = HashSet::from([
fs::read_to_string("tests/samicro.sass").unwrap(),
fs::read_to_string("tests/scmicro.scss").unwrap(),
]);
let mut real_modules = HashSet::new();
let mut real_codes = HashSet::new();
_usey.iter().for_each(|(module, code)| {
real_modules.insert(module.clone());
real_codes.insert(code.clone());
});
assert_eq!(expect_modules, real_modules);
assert_eq!(expect_codes, real_codes)
}

View file

@ -0,0 +1,2 @@
.sel1
color: red

View file

@ -0,0 +1,3 @@
.sel1 {
color: red;
}