#!/usr/bin/env python # Copyright 2018-2019 the Deno authors. All rights reserved. MIT license. import os import shutil from test_util import DenoTestCase, run_tests from util import mkdtemp, root_path, tests_path, run_output class TestFmt(DenoTestCase): def test_fmt(self): d = mkdtemp() try: fixed_filename = os.path.join(tests_path, "badly_formatted_fixed.js") src = os.path.join(tests_path, "badly_formatted.js") dst = os.path.join(d, "badly_formatted.js") shutil.copyfile(src, dst) # Set DENO_DIR to the temp dir to test an initial fetch of prettier. # TODO(ry) This make the test depend on internet access which is not # ideal. We should have prettier in the repo already, and we could # fetch it instead through tools/http_server.py. deno_dir = d # TODO(kt3k) Below can be run([deno_exe, "fmt", dst], ...) # once the following issue is addressed: # https://github.com/denoland/deno_std/issues/330 result = run_output([ os.path.join(root_path, self.deno_exe), "fmt", "badly_formatted.js" ], cwd=d, merge_env={"DENO_DIR": deno_dir}, exit_on_fail=True, quiet=True) self.assertEqual(result.code, 0) with open(fixed_filename) as f: expected = f.read() with open(dst) as f: actual = f.read() self.assertEqual(expected, actual) finally: shutil.rmtree(d) if __name__ == "__main__": run_tests()