@@ -761,24 +761,9 @@ test("icss-scoped contract", () => {
761
761
762
762
test ( "icss-composed contract" , ( ) => {
763
763
const inputMessages = [
764
- {
765
- plugin : "previous-plugin" ,
766
- type : "icss-composed" ,
767
- name : "foo" ,
768
- value : "__compose__foo1"
769
- } ,
770
- {
771
- plugin : "previous-plugin" ,
772
- type : "icss-composed" ,
773
- name : "foo" ,
774
- value : "__compose__foo2"
775
- } ,
776
- {
777
- plugin : "previous-plugin" ,
778
- type : "icss-composed" ,
779
- name : "bar" ,
780
- value : "__compose__bar"
781
- }
764
+ { type : "icss-composed" , name : "foo" , value : "__compose__foo1" } ,
765
+ { type : "icss-composed" , name : "foo" , value : "__compose__foo2" } ,
766
+ { type : "icss-composed" , name : "bar" , value : "__compose__bar" }
782
767
] ;
783
768
return runMessages ( {
784
769
fixture : `
@@ -825,6 +810,109 @@ test("icss-composed contract", () => {
825
810
} ) ;
826
811
} ) ;
827
812
813
+ test ( "icss-composed contract with local dependencies" , ( ) => {
814
+ const inputMessages = [
815
+ { type : "icss-composed" , name : "bar" , value : "foo" } ,
816
+ { type : "icss-composed" , name : "tar" , value : "baz" } ,
817
+ { type : "icss-composed" , name : "doo" , value : "bar" } ,
818
+ { type : "icss-composed" , name : "doo" , value : "tar" }
819
+ ] ;
820
+ return runMessages ( {
821
+ fixture : `
822
+ .foo {}
823
+ .bar {}
824
+ .baz {}
825
+ .tar {}
826
+ .doo {}
827
+ ` ,
828
+ expected : `
829
+ :export {
830
+ foo: __scope__foo;
831
+ bar: __scope__bar __scope__foo;
832
+ baz: __scope__baz;
833
+ tar: __scope__tar __scope__baz;
834
+ doo: __scope__doo __scope__bar __scope__foo __scope__tar __scope__baz
835
+ }
836
+ .__scope__foo {}
837
+ .__scope__bar {}
838
+ .__scope__baz {}
839
+ .__scope__tar {}
840
+ .__scope__doo {}
841
+ ` ,
842
+ inputMessages,
843
+ outputMessages : [
844
+ ...inputMessages ,
845
+ {
846
+ plugin : "postcss-icss-selectors" ,
847
+ type : "icss-scoped" ,
848
+ name : "foo" ,
849
+ value : "__scope__foo"
850
+ } ,
851
+ {
852
+ plugin : "postcss-icss-selectors" ,
853
+ type : "icss-scoped" ,
854
+ name : "bar" ,
855
+ value : "__scope__bar"
856
+ } ,
857
+ {
858
+ plugin : "postcss-icss-selectors" ,
859
+ type : "icss-scoped" ,
860
+ name : "baz" ,
861
+ value : "__scope__baz"
862
+ } ,
863
+ {
864
+ plugin : "postcss-icss-selectors" ,
865
+ type : "icss-scoped" ,
866
+ name : "tar" ,
867
+ value : "__scope__tar"
868
+ } ,
869
+ {
870
+ plugin : "postcss-icss-selectors" ,
871
+ type : "icss-scoped" ,
872
+ name : "doo" ,
873
+ value : "__scope__doo"
874
+ }
875
+ ]
876
+ } ) ;
877
+ } ) ;
878
+
879
+ test ( "icss-composed contract with recursive local composition" , ( ) => {
880
+ const inputMessages = [
881
+ { type : "icss-composed" , name : "foo" , value : "bar" } ,
882
+ { type : "icss-composed" , name : "bar" , value : "foo" }
883
+ ] ;
884
+ return runMessages ( {
885
+ fixture : `
886
+ .foo {}
887
+ .bar {}
888
+ ` ,
889
+ expected : `
890
+ :export {
891
+ foo: __scope__foo __scope__bar;
892
+ bar: __scope__bar __scope__foo
893
+ }
894
+ .__scope__foo {}
895
+ .__scope__bar {}
896
+ ` ,
897
+ inputMessages,
898
+ outputMessages : [
899
+ ...inputMessages ,
900
+ {
901
+ plugin : "postcss-icss-selectors" ,
902
+ type : "icss-scoped" ,
903
+ name : "foo" ,
904
+ value : "__scope__foo"
905
+ } ,
906
+ {
907
+ plugin : "postcss-icss-selectors" ,
908
+ type : "icss-scoped" ,
909
+ name : "bar" ,
910
+ value : "__scope__bar"
911
+ }
912
+ ]
913
+ } ) ;
914
+ } ) ;
915
+
828
916
test ( "icss-value contract" , ( ) => {
829
917
const inputMessages = [
830
918
{
0 commit comments