All files / src/rules no-juniors.ts

100% Statements 7/7
100% Branches 4/4
100% Functions 2/2
100% Lines 7/7

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 242x 2x     2x   2x   3x         2x             3x      
import path from 'path';
import { Rule } from '../rule';
import { Node } from '../types';
 
const MATCHES_EXTENSION_LIKE = /\..+/;
 
export class NoJuniors extends Rule {
  public run(node: Node) {
    if (
      node.name === node.parentName ||
      node.name.replace(path.extname(node.name), '') === node.parentName ||
      node.name.replace(MATCHES_EXTENSION_LIKE, '') === node.parentName
    ) {
      this.report(
        `File at ${node.path} matches its parent's name - ${node.parentName}`
      );
    }
  }
 
  protected getName() {
    return 'NoJuniors';
  }
}