@@ -472,6 +472,96 @@ tester.run('no-duplicate-class-names', rule, {
472472 endColumn : 48
473473 }
474474 ]
475+ } ,
476+ {
477+ filename : 'duplicate-class-logical-expression-and.vue' ,
478+ code : `<template><div :class="isActive && 'foo foo'"></div></template>` ,
479+ output : `<template><div :class="isActive && 'foo'"></div></template>` ,
480+ errors : [
481+ {
482+ message : "Duplicate class name 'foo'." ,
483+ type : 'Literal' ,
484+ line : 1 ,
485+ column : 36 ,
486+ endLine : 1 ,
487+ endColumn : 45
488+ }
489+ ]
490+ } ,
491+ {
492+ filename : 'duplicate-class-logical-expression-or.vue' ,
493+ code : `<template><div :class="isActive || 'foo foo'"></div></template>` ,
494+ output : `<template><div :class="isActive || 'foo'"></div></template>` ,
495+ errors : [
496+ {
497+ message : "Duplicate class name 'foo'." ,
498+ type : 'Literal' ,
499+ line : 1 ,
500+ column : 36 ,
501+ endLine : 1 ,
502+ endColumn : 45
503+ }
504+ ]
505+ } ,
506+ {
507+ filename : 'duplicate-class-logical-expression-nullish-coalescing.vue' ,
508+ code : `<template><div :class="isActive ?? 'foo foo'"></div></template>` ,
509+ output : `<template><div :class="isActive ?? 'foo'"></div></template>` ,
510+ errors : [
511+ {
512+ message : "Duplicate class name 'foo'." ,
513+ type : 'Literal' ,
514+ line : 1 ,
515+ column : 36 ,
516+ endLine : 1 ,
517+ endColumn : 45
518+ }
519+ ]
520+ } ,
521+ {
522+ filename : 'duplicate-class-nested-logical-expression.vue' ,
523+ code : `<template><div :class="isActive ?? isAnotherActive ?? 'foo foo'"></div></template>` ,
524+ output : `<template><div :class="isActive ?? isAnotherActive ?? 'foo'"></div></template>` ,
525+ errors : [
526+ {
527+ message : "Duplicate class name 'foo'." ,
528+ type : 'Literal' ,
529+ line : 1 ,
530+ column : 55 ,
531+ endLine : 1 ,
532+ endColumn : 64
533+ }
534+ ]
535+ } ,
536+ {
537+ filename : 'duplicate-class-logical-expression-in-array.vue' ,
538+ code : `<template><div :class="['foo', isActive ?? 'foo']"></div></template>` ,
539+ output : null ,
540+ errors : [
541+ {
542+ message : "Duplicate class name 'foo'." ,
543+ type : 'ArrayExpression' ,
544+ line : 1 ,
545+ column : 24 ,
546+ endLine : 1 ,
547+ endColumn : 50
548+ }
549+ ]
550+ } ,
551+ {
552+ filename : 'duplicate-class-logical-expression-in-conditional.vue' ,
553+ code : `<template><div :class="isActive ? 'foo foo' : 'bar'"></div></template>` ,
554+ output : `<template><div :class="isActive ? 'foo' : 'bar'"></div></template>` ,
555+ errors : [
556+ {
557+ message : "Duplicate class name 'foo'." ,
558+ type : 'Literal' ,
559+ line : 1 ,
560+ column : 35 ,
561+ endLine : 1 ,
562+ endColumn : 44
563+ }
564+ ]
475565 }
476566 ]
477567} )
0 commit comments