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

exports[`A.js 1`] = `
====================================options=====================================
parsers: ["flow"]
printWidth: 80
                                                                                | printWidth
=====================================input======================================
/**
 * @providesModule A
 * @flow
 */

module.exports = {
  numberValueA: 1,
  stringValueA: "someString"
};

=====================================output=====================================
/**
 * @providesModule A
 * @flow
 */

module.exports = {
  numberValueA: 1,
  stringValueA: "someString"
};

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

exports[`B.js 1`] = `
====================================options=====================================
parsers: ["flow"]
printWidth: 80
                                                                                | printWidth
=====================================input======================================
/**
 * @providesModule B
 * @flow
 */

module.exports = {
  numberValueB: 1,
  stringValueB: "someString"
};

=====================================output=====================================
/**
 * @providesModule B
 * @flow
 */

module.exports = {
  numberValueB: 1,
  stringValueB: "someString"
};

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

exports[`requireLazy.js 1`] = `
====================================options=====================================
parsers: ["flow"]
printWidth: 80
                                                                                | printWidth
=====================================input======================================
/**
 * @flow
 */

requireLazy(['A', 'B'], function(A, B) {
  var num1: number = A.numberValueA;
  var str1: string = A.stringValueA;
  var num2: number = A.stringValueA; // Error: string ~> number
  var str2: string = A.numberValueA; // Error: number ~> string

  var num3: number = B.numberValueB;
  var str3: string = B.stringValueB;
  var num4: number = B.stringValueB; // Error: string ~> number
  var str4: string = B.numberValueB; // Error: number ~> string
});

var notA: Object = A;
var notB: Object = B;

requireLazy(); // Error: No args
requireLazy([nope], function() {}); // Error: Non-stringliteral args
requireLazy(['A']); // Error: No callback expression

=====================================output=====================================
/**
 * @flow
 */

requireLazy(["A", "B"], function(A, B) {
  var num1: number = A.numberValueA;
  var str1: string = A.stringValueA;
  var num2: number = A.stringValueA; // Error: string ~> number
  var str2: string = A.numberValueA; // Error: number ~> string

  var num3: number = B.numberValueB;
  var str3: string = B.stringValueB;
  var num4: number = B.stringValueB; // Error: string ~> number
  var str4: string = B.numberValueB; // Error: number ~> string
});

var notA: Object = A;
var notB: Object = B;

requireLazy(); // Error: No args
requireLazy([nope], function() {}); // Error: Non-stringliteral args
requireLazy(["A"]); // Error: No callback expression

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