// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`abstract_class.ts 1`] = `
====================================options=====================================
parsers: ["typescript"]
printWidth: 80
                                                                                | printWidth
=====================================input======================================
abstract class AbstractRule {
    /**
     * @deprecated
     * Failures will be filtered based on \`tslint:disable\` comments by tslint.
     * This method now does nothing.
     */
    filterFailures() {}
}

=====================================output=====================================
abstract class AbstractRule {
  /**
   * @deprecated
   * Failures will be filtered based on \`tslint:disable\` comments by tslint.
   * This method now does nothing.
   */
  filterFailures() {}
}

================================================================================
`;

exports[`jsx.ts 1`] = `
====================================options=====================================
parsers: ["typescript"]
printWidth: 80
                                                                                | printWidth
=====================================input======================================
var example1 = <div>
	https://test
</div>;

var example2 = <div>
	/*test*/
</div>;

=====================================output=====================================
var example1 = <div>https://test</div>;

var example2 = <div>/*test*/</div>;

================================================================================
`;

exports[`location.ts 1`] = `
====================================options=====================================
parsers: ["typescript"]
printWidth: 80
                                                                                | printWidth
=====================================input======================================
function x({
  x,
  y,
}: {
  // Hello world.
  x: string,
  // Yoyo.
  y: string,
}) {}

export interface ApplicationEventData {
  registerBroadcastReceiver(onReceiveCallback: (
    context: any /* android.content.Context */,
    intent: any /* android.content.Intent */
  ) => void): void;
}

export type WrappedFormUtils = {
  getFieldDecorator(id: string, options?: {
    /** 子节点的值的属性，如 Checkbox 的是 'checked' */
    valuePropName?: string;
    /** 子节点的初始值，类型、可选值均由子节点决定 */
    initialValue?: any;
    /** 收集子节点的值的时机 */
    trigger?: string;
    /** 可以把 onChange 的参数转化为控件的值，例如 DatePicker 可设为：(date, dateString) => dateString */
    getValueFromEvent?: (...args: any[]) => any;
    /** 校验子节点值的时机 */
    validateTrigger?: string | string[];
    /** 校验规则，参见 [async-validator](https://github.com/yiminghe/async-validator) */
    rules?: ValidationRule[];
    /** 是否和其他控件互斥，特别用于 Radio 单选控件 */
    exclusive?: boolean;
  }): (node: React.ReactNode) => React.ReactNode;
};

=====================================output=====================================
function x({
  x,
  y
}: {
  // Hello world.
  x: string;
  // Yoyo.
  y: string;
}) {}

export interface ApplicationEventData {
  registerBroadcastReceiver(
    onReceiveCallback: (
      context: any /* android.content.Context */,
      intent: any /* android.content.Intent */
    ) => void
  ): void;
}

export type WrappedFormUtils = {
  getFieldDecorator(
    id: string,
    options?: {
      /** 子节点的值的属性，如 Checkbox 的是 'checked' */
      valuePropName?: string;
      /** 子节点的初始值，类型、可选值均由子节点决定 */
      initialValue?: any;
      /** 收集子节点的值的时机 */
      trigger?: string;
      /** 可以把 onChange 的参数转化为控件的值，例如 DatePicker 可设为：(date, dateString) => dateString */
      getValueFromEvent?: (...args: any[]) => any;
      /** 校验子节点值的时机 */
      validateTrigger?: string | string[];
      /** 校验规则，参见 [async-validator](https://github.com/yiminghe/async-validator) */
      rules?: ValidationRule[];
      /** 是否和其他控件互斥，特别用于 Radio 单选控件 */
      exclusive?: boolean;
    }
  ): (node: React.ReactNode) => React.ReactNode;
};

================================================================================
`;

exports[`mapped_types.ts 1`] = `
====================================options=====================================
parsers: ["typescript"]
printWidth: 80
                                                                                | printWidth
=====================================input======================================
type A = {
  // commentA
  [a in A]: string;
}

type B = {
  /* commentB */ [b in B]: string
}

type C = {
  [/* commentC */ c in C]: string
}

type D = {
  [d /* commentD */ in D]: string
}

type E = {
  [e in /* commentE */ E]: string
}

type F = {
  [f in F /* commentF */]: string
}

type G = {
  [g in G] /* commentG */: string
}

=====================================output=====================================
type A = {
  // commentA
  [a in A]: string
};

type B = { /* commentB */ [b in B]: string };

type C = { [/* commentC */ c in C]: string };

type D = { [d /* commentD */ in D]: string };

type E = { [e in /* commentE */ E]: string };

type F = { [f in F /* commentF */]: string };

type G = { [g in G /* commentG */]: string };

================================================================================
`;

exports[`methods.ts 1`] = `
====================================options=====================================
parsers: ["typescript"]
printWidth: 80
                                                                                | printWidth
=====================================input======================================
export class Point {
/**
 * Does something.
 */
  foo() {}

    /**
     * Does something else.
     */
  bar() {}

                /**
                 * Does
                 * something
                 * much
                 * better
                 * than
                 * the
                 * rest.
                 */
  baz() {}

      /**
       * Buzz-Fizz.
       * Note: This is indented too far.
       */
      fizzBuzz() {}

      /**
       * Turns the given string into pig-latin.
       */
              pigLatinize(value: string) {
/**
 * This is a block comment inside of a method.
 */
              }

  /**
        * One
 * Two
   * Three
* Four 
   */
  mismatchedIndentation() {}

}

=====================================output=====================================
export class Point {
  /**
   * Does something.
   */
  foo() {}

  /**
   * Does something else.
   */
  bar() {}

  /**
   * Does
   * something
   * much
   * better
   * than
   * the
   * rest.
   */
  baz() {}

  /**
   * Buzz-Fizz.
   * Note: This is indented too far.
   */
  fizzBuzz() {}

  /**
   * Turns the given string into pig-latin.
   */
  pigLatinize(value: string) {
    /**
     * This is a block comment inside of a method.
     */
  }

  /**
   * One
   * Two
   * Three
   * Four
   */
  mismatchedIndentation() {}
}

================================================================================
`;

exports[`type-parameters.ts 1`] = `
====================================options=====================================
parsers: ["typescript"]
printWidth: 80
                                                                                | printWidth
=====================================input======================================
functionName<A /* A comment */>();

=====================================output=====================================
functionName<A /* A comment */>();

================================================================================
`;

exports[`types.ts 1`] = `
====================================options=====================================
parsers: ["typescript"]
printWidth: 80
                                                                                | printWidth
=====================================input======================================
(() => {
  // swallow error and fallback to using directory as path
}) as string[];

=====================================output=====================================
(() => {
  // swallow error and fallback to using directory as path
}) as string[];

================================================================================
`;
