just/tests
Casey Rodarmor b66a979c08
Add set export to export all variables as environment variables (#767)
Add a setting that exports all variables by default, regardless of
whether they use the `export` keyword. This includes assignments as well
as parameters.

Just does dependency analysis of variable uses, allowing variables to be
used out of order in assignments, as long as there are no circular
dependencies.

However, use of environment variable is not known to Just, so exported
variables are only exported to child scopes, to avoid ordering dependencies,
since dependency analysis cannot be done.
2021-03-25 17:00:32 -07:00
..
choose.rs Allow choosing multiple recipes to run (#700) 2020-10-10 17:54:58 -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
conditional.rs Add conditional expressions (#714) 2020-10-26 18:16:42 -07:00
delimiters.rs Allow ignore line endings inside delimiters (#717) 2020-10-27 23:51:17 -07: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
error_messages.rs Add conditional expressions (#714) 2020-10-26 18:16:42 -07:00
examples.rs Test that example justfiles successfully parse (#643) 2020-06-09 22:57:16 -07:00
export.rs Add set export to export all variables as environment variables (#767) 2021-03-25 17:00:32 -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 Note shebang line splitting inconsistency in readme (#757) 2021-02-15 01:18:31 -08:00
lib.rs Add set export to export all variables as environment variables (#767) 2021-03-25 17:00:32 -07:00
misc.rs Add set export to export all variables as environment variables (#767) 2021-03-25 17:00:32 -07:00
quiet.rs Suppress all output to stderr when --quiet (#771) 2021-03-25 16:51:29 -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);
  }
}