Skip to content

Commit 2ba87c3

Browse files
committed
breaking: fix selectorlist->selector->parts hierarchy
1 parent 10a04cb commit 2ba87c3

File tree

4 files changed

+352
-58
lines changed

4 files changed

+352
-58
lines changed

src/parser.test.ts

Lines changed: 26 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -845,7 +845,8 @@ describe('Parser', () => {
845845
let root = parser.parse()
846846

847847
let rule = root.first_child!
848-
let selector = rule.first_child!
848+
let selectorList = rule.first_child!
849+
let selector = selectorList.first_child! // NODE_SELECTOR wrapper
849850
// Selector has detailed parsing enabled by default
850851
expect(selector.has_children).toBe(true)
851852
// Navigate: selector -> type selector (input) -> pseudo-class (next sibling)
@@ -861,7 +862,8 @@ describe('Parser', () => {
861862
let root = parser.parse()
862863

863864
let rule = root.first_child!
864-
let selector = rule.first_child!
865+
let selectorList = rule.first_child!
866+
let selector = selectorList.first_child! // NODE_SELECTOR wrapper
865867
let typeSelector = selector.first_child!
866868
let pseudoClass = typeSelector.next_sibling!
867869
expect(pseudoClass.name).toBe('-moz-focusring')
@@ -874,7 +876,8 @@ describe('Parser', () => {
874876
let root = parser.parse()
875877

876878
let rule = root.first_child!
877-
let selector = rule.first_child!
879+
let selectorList = rule.first_child!
880+
let selector = selectorList.first_child! // NODE_SELECTOR wrapper
878881
let typeSelector = selector.first_child!
879882
let pseudoClass = typeSelector.next_sibling!
880883
expect(pseudoClass.name).toBe('-ms-input-placeholder')
@@ -887,7 +890,8 @@ describe('Parser', () => {
887890
let root = parser.parse()
888891

889892
let rule = root.first_child!
890-
let selector = rule.first_child!
893+
let selectorList = rule.first_child!
894+
let selector = selectorList.first_child! // NODE_SELECTOR wrapper
891895
let typeSelector = selector.first_child!
892896
let pseudoElement = typeSelector.next_sibling!
893897
expect(pseudoElement.name).toBe('-webkit-scrollbar')
@@ -900,7 +904,8 @@ describe('Parser', () => {
900904
let root = parser.parse()
901905

902906
let rule = root.first_child!
903-
let selector = rule.first_child!
907+
let selectorList = rule.first_child!
908+
let selector = selectorList.first_child! // NODE_SELECTOR wrapper
904909
let typeSelector = selector.first_child!
905910
let pseudoElement = typeSelector.next_sibling!
906911
expect(pseudoElement.name).toBe('-moz-selection')
@@ -913,7 +918,8 @@ describe('Parser', () => {
913918
let root = parser.parse()
914919

915920
let rule = root.first_child!
916-
let selector = rule.first_child!
921+
let selectorList = rule.first_child!
922+
let selector = selectorList.first_child! // NODE_SELECTOR wrapper
917923
let typeSelector = selector.first_child!
918924
let pseudoElement = typeSelector.next_sibling!
919925
expect(pseudoElement.name).toBe('-webkit-input-placeholder')
@@ -926,7 +932,8 @@ describe('Parser', () => {
926932
let root = parser.parse()
927933

928934
let rule = root.first_child!
929-
let selector = rule.first_child!
935+
let selectorList = rule.first_child!
936+
let selector = selectorList.first_child! // NODE_SELECTOR wrapper
930937
let typeSelector = selector.first_child!
931938
let pseudoClass = typeSelector.next_sibling!
932939
expect(pseudoClass.name).toBe('-webkit-any')
@@ -939,7 +946,8 @@ describe('Parser', () => {
939946
let root = parser.parse()
940947

941948
let rule = root.first_child!
942-
let selector = rule.first_child!
949+
let selectorList = rule.first_child!
950+
let selector = selectorList.first_child! // NODE_SELECTOR wrapper
943951
let typeSelector = selector.first_child!
944952
let pseudoClass = typeSelector.next_sibling!
945953
expect(pseudoClass.name).toBe('hover')
@@ -952,7 +960,8 @@ describe('Parser', () => {
952960
let root = parser.parse()
953961

954962
let rule = root.first_child!
955-
let selector = rule.first_child!
963+
let selectorList = rule.first_child!
964+
let selector = selectorList.first_child! // NODE_SELECTOR wrapper
956965
let typeSelector = selector.first_child!
957966
let pseudoElement = typeSelector.next_sibling!
958967
expect(pseudoElement.name).toBe('before')
@@ -966,19 +975,22 @@ describe('Parser', () => {
966975

967976
let [rule1, rule2, rule3] = root.children
968977

969-
let selector1 = rule1.first_child!
978+
let selectorList1 = rule1.first_child!
979+
let selector1 = selectorList1.first_child! // NODE_SELECTOR wrapper
970980
let typeSelector1 = selector1.first_child!
971981
let pseudo1 = typeSelector1.next_sibling!
972982
expect(pseudo1.name).toBe('-webkit-scrollbar')
973983
expect(pseudo1.is_vendor_prefixed).toBe(true)
974984

975-
let selector2 = rule2.first_child!
985+
let selectorList2 = rule2.first_child!
986+
let selector2 = selectorList2.first_child! // NODE_SELECTOR wrapper
976987
let typeSelector2 = selector2.first_child!
977988
let pseudo2 = typeSelector2.next_sibling!
978989
expect(pseudo2.name).toBe('-webkit-scrollbar-thumb')
979990
expect(pseudo2.is_vendor_prefixed).toBe(true)
980991

981-
let selector3 = rule3.first_child!
992+
let selectorList3 = rule3.first_child!
993+
let selector3 = selectorList3.first_child! // NODE_SELECTOR wrapper
982994
let typeSelector3 = selector3.first_child!
983995
let pseudo3 = typeSelector3.next_sibling!
984996
expect(pseudo3.name).toBe('after')
@@ -991,7 +1003,8 @@ describe('Parser', () => {
9911003
let root = parser.parse()
9921004

9931005
let rule = root.first_child!
994-
let selector = rule.first_child!
1006+
let selectorList = rule.first_child!
1007+
let selector = selectorList.first_child! // NODE_SELECTOR wrapper
9951008
// Navigate through compound selector: input (type) -> -webkit-autofill (pseudo) -> :focus (pseudo)
9961009
let typeSelector = selector.first_child!
9971010
let webkitPseudo = typeSelector.next_sibling!

0 commit comments

Comments
 (0)