newtests/export_star_from/test.js (44 lines of code) (raw):

/* * @flow */ import type {Suite} from "flow-dev-tools/src/test/Suite"; const {suite, test} = require('flow-dev-tools/src/test/Tester'); module.exports = (suite(({addFile, addFiles, addCode}) => [ test('local exports override remote exports', [ addFile('./origin.js').noNewErrors(), addFile('./local_override1.js').noNewErrors(), addCode(` import {C} from "./local_override1"; (C: string); `).noNewErrors(), addCode('(C: number);').newErrors( ` test.js:8 8: (C: number); ^ Cannot cast \`C\` to number because string [1] is incompatible with number [2]. [incompatible-cast] References: 3: export const C = "asdf"; ^^^^^^ [1]. See: local_override1.js:3 8: (C: number); ^^^^^^ [2] `, ), ]), test('local exports override remote exports regardless of export order', [ addFile('./origin.js').noNewErrors(), addFile('./local_override2.js').noNewErrors(), addCode(` import {C} from "./local_override2"; (C: string); `).noNewErrors(), addCode('(C: number);').newErrors( ` test.js:8 8: (C: number); ^ Cannot cast \`C\` to number because string [1] is incompatible with number [2]. [incompatible-cast] References: 4: export const C = "asdf"; ^^^^^^ [1]. See: local_override2.js:4 8: (C: number); ^^^^^^ [2] `, ), ]), ]): Suite);