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

exports[`binary.js 1`] = `
====================================options=====================================
parsers: ["flow", "babylon", "typescript"]
printWidth: 80
                                                                                | printWidth
=====================================input======================================
(class {}) + 1;
(class a {}) + 1;
(class extends b {}) + 1;
(class a extends b {}) + 1;

=====================================output=====================================
(class {} + 1);
(class a {} + 1);
(class extends b {} + 1);
(class a extends b {} + 1);

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

exports[`break.js 1`] = `
====================================options=====================================
parsers: ["flow", "babylon", "typescript"]
printWidth: 80
                                                                                | printWidth
=====================================input======================================
class MyContractSelectionWidget extends React.Component<void,  MyContractSelectionWidgetPropsType, void> implements SomethingLarge {
  method() {}
}

class DisplayObject
  extends utils.EventEmitter
  implements interaction_InteractiveTarget {
}

class DisplayObject extends utils.EventEmitter
  implements interaction_InteractiveTarget {
}

class DisplayObject extends utils.EventEmitter
  implements interaction_InteractiveTarget,
    somethingElse_SomeOtherThing,
    somethingElseAgain_RunningOutOfNames {
}

class DisplayObject extends utils.EventEmitter implements interaction_InteractiveTarget {}
class Readable extends events.EventEmitter implements NodeJS_ReadableStream {}
class InMemoryAppender extends log4javascript.Appender implements ICachedLogMessageProvider {}

class Foo extends Immutable.Record({
  ipaddress: '',
}) {
  ipaddress: string;
}

export class VisTimelineComponent
	implements AfterViewInit, OnChanges, OnDestroy {
}
export class VisTimelineComponent2
	implements AfterViewInit, OnChanges, OnDestroy, AndSomethingReallyReallyLong {
}

=====================================output=====================================
class MyContractSelectionWidget
  extends React.Component<void, MyContractSelectionWidgetPropsType, void>
  implements SomethingLarge {
  method() {}
}

class DisplayObject extends utils.EventEmitter
  implements interaction_InteractiveTarget {}

class DisplayObject extends utils.EventEmitter
  implements interaction_InteractiveTarget {}

class DisplayObject extends utils.EventEmitter
  implements
    interaction_InteractiveTarget,
    somethingElse_SomeOtherThing,
    somethingElseAgain_RunningOutOfNames {}

class DisplayObject extends utils.EventEmitter
  implements interaction_InteractiveTarget {}
class Readable extends events.EventEmitter implements NodeJS_ReadableStream {}
class InMemoryAppender extends log4javascript.Appender
  implements ICachedLogMessageProvider {}

class Foo extends Immutable.Record({
  ipaddress: ""
}) {
  ipaddress: string;
}

export class VisTimelineComponent
  implements AfterViewInit, OnChanges, OnDestroy {}
export class VisTimelineComponent2
  implements
    AfterViewInit,
    OnChanges,
    OnDestroy,
    AndSomethingReallyReallyLong {}

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

exports[`call.js 1`] = `
====================================options=====================================
parsers: ["flow", "babylon", "typescript"]
printWidth: 80
                                                                                | printWidth
=====================================input======================================
(class {})(class {});

=====================================output=====================================
(class {}(class {}));

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

exports[`empty.js 1`] = `
====================================options=====================================
parsers: ["flow", "babylon", "typescript"]
printWidth: 80
                                                                                | printWidth
=====================================input======================================
class A {
  // comment
}

class A { // comment
}

class A {
}

class A {
  m() {}
}

=====================================output=====================================
class A {
  // comment
}

class A {
  // comment
}

class A {}

class A {
  m() {}
}

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

exports[`member.js 1`] = `
====================================options=====================================
parsers: ["flow", "babylon", "typescript"]
printWidth: 80
                                                                                | printWidth
=====================================input======================================
(class {})[1];
(class {}).a;

=====================================output=====================================
(class {}[1]);
(class {}.a);

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

exports[`method.js 1`] = `
====================================options=====================================
parsers: ["flow", "babylon", "typescript"]
printWidth: 80
                                                                                | printWidth
=====================================input======================================

class C {
  name/*comment*/() {
  }
};


({
  name/*comment*/() {
  }
});

=====================================output=====================================
class C {
  name /*comment*/() {}
}

({
  name /*comment*/() {}
});

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

exports[`property.js 1`] = `
====================================options=====================================
parsers: ["flow", "babylon", "typescript"]
printWidth: 80
                                                                                | printWidth
=====================================input======================================
class A {
  foobar =
    // comment to break
    1 +
    // comment to break again
    2;
}

class B {
  someInstanceProperty = this.props.foofoofoofoofoofoo &&
    this.props.barbarbarbar;
  
  someInstanceProperty2 = { foo: this.props.foofoofoofoofoofoo &&
    this.props.barbarbarbar };
  
    someInstanceProperty3 =
  "foo";
}

=====================================output=====================================
class A {
  foobar =
    // comment to break
    1 +
    // comment to break again
    2;
}

class B {
  someInstanceProperty =
    this.props.foofoofoofoofoofoo && this.props.barbarbarbar;

  someInstanceProperty2 = {
    foo: this.props.foofoofoofoofoofoo && this.props.barbarbarbar
  };

  someInstanceProperty3 = "foo";
}

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

exports[`ternary.js 1`] = `
====================================options=====================================
parsers: ["flow", "babylon", "typescript"]
printWidth: 80
                                                                                | printWidth
=====================================input======================================
if (1) (class {}) ? 1 : 2;

=====================================output=====================================
if (1) (class {} ? 1 : 2);

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