1
1
mirror of https://github.com/casey/just.git synced 2024-11-23 11:04:09 +03:00
just/tests
Casey Rodarmor 9d0246998d
Add the --choose subcommand (#680)
The `--choose` subcommand runs a chooser to select a recipe to run. The
chooser should read lines containing recipe names from standard input,
and write one of those names to standard output.

The chooser defaults to `fzf`, a popular fuzzy finder, but can be
overridden by setting $JUST_CHOOSER or passing `--chooser <CHOOSER>`.
2020-09-17 19:43:04 -07:00
..
choose.rs Add the --choose subcommand (#680) 2020-09-17 19:43:04 -07:00
common.rs Add the --choose subcommand (#680) 2020-09-17 19:43:04 -07:00
completions.rs Don't require justfile to print completions (#596) 2020-02-20 06:07:25 -08:00
dotenv.rs Search for .env file from working directory (#661) 2020-07-19 05:01:46 -07:00
edit.rs Add the --choose subcommand (#680) 2020-09-17 19:43:04 -07:00
examples.rs Test that example justfiles successfully parse (#643) 2020-06-09 22:57:16 -07:00
init.rs Add missing --init test (#543) 2019-11-20 01:35:29 -06:00
interrupts.rs Gargantuan refactor (#522) 2019-11-09 21:43:20 -08:00
invocation_directory.rs Refactor lexer tests (#498) 2019-10-17 20:04:54 -07:00
lib.rs Add the --choose subcommand (#680) 2020-09-17 19:43:04 -07:00
misc.rs Add the --choose subcommand (#680) 2020-09-17 19:43:04 -07:00
readme.rs Reform positional argument parsing (#523) 2019-11-10 18:02:36 -08:00
search.rs Reform positional argument parsing (#523) 2019-11-10 18:02:36 -08:00
shell.rs Add shell setting (#525) 2019-11-10 23:17:47 -08:00
test.rs Add the --choose subcommand (#680) 2020-09-17 19:43:04 -07:00
working_directory.rs Wrap comments at 80 characters (#593) 2020-02-14 04:49:25 -08:00

use std::{fs, process::Command};

use executable_path::executable_path;
use test_utilities::{assert_success, tempdir};

#[test]
fn readme() {
  let mut justfiles = vec![];
  let mut current = None;

  for line in fs::read_to_string("README.adoc").unwrap().lines() {
    if let Some(mut justfile) = current {
      if line == "```" {
        justfiles.push(justfile);
        current = None;
      } else {
        justfile += line;
        justfile += "\n";
        current = Some(justfile);
      }
    } else if line == "```make" {
      current = Some(String::new());
    }
  }

  for justfile in justfiles {
    let tmp = tempdir();

    let path = tmp.path().join("justfile");

    fs::write(&path, &justfile).unwrap();

    let output = Command::new(executable_path("just"))
      .current_dir(tmp.path())
      .arg("--dump")
      .output()
      .unwrap();

    assert_success(&output);
  }
}