1
1
mirror of https://github.com/casey/just.git synced 2024-11-29 06:03:58 +03:00
just/tests
Casey Rodarmor 564814208f
Lexiclean search directory so .. does not check the current directory (#2236)
If the search directory was `..`, for example in the invocation
`just ../foo`, we would wind up checking the justfile in the current
directory since we did `INVOCATION_DIRECTORY/..`.ancestors(), which
would first return `INVOCATION_DIRECTORY`.

Instead, lexiclean the result of joining th invocation directory with
the search directory, so `..` is removed, and `ancestors()` doesn't
return the invocation directory.
2024-07-08 02:12:07 +00:00
..
completions Don't check in auto-generated completion scripts (#2120) 2024-06-01 23:26:41 +00:00
allow_duplicate_recipes.rs Stabilize fallback (#1471) 2023-01-04 06:31:56 +00:00
allow_duplicate_variables.rs Add 'allow-duplicate-variables' setting (#1922) 2024-05-15 01:39:42 +00:00
assert_stdout.rs Add invocation_directory_native() (#1507) 2023-01-13 19:03:14 +00:00
assert_success.rs Add invocation_directory_native() (#1507) 2023-01-13 19:03:14 +00:00
assertions.rs Add assert expression (#1845) 2024-05-15 01:55:32 +00:00
assignment.rs Improve error message if if is missing the else (#1252) 2022-06-30 10:34:11 +00:00
attributes.rs Add [ATTRIBUTE: VALUE] shorthand (#2136) 2024-06-08 18:33:45 +00:00
backticks.rs Fix output \r\n stripping (#2035) 2024-05-14 23:30:19 +00:00
byte_order_mark.rs Use box-drawing characters in error messages (#1798) 2023-12-29 21:25:30 +00:00
changelog.rs Stabilize fallback (#1471) 2023-01-04 06:31:56 +00:00
choose.rs Remove dependency on cradle (#2169) 2024-06-18 02:42:16 +00:00
command.rs Add set dotenv-required to require an environment file (#2116) 2024-05-30 23:12:07 +00:00
completions.rs Release 1.29.0 (#2155) 2024-06-14 02:57:12 +00:00
conditional.rs Use box-drawing characters in error messages (#1798) 2023-12-29 21:25:30 +00:00
confirm.rs Allow setting custom confirm prompt (#1834) 2024-01-13 02:44:13 +00:00
constants.rs Add predefined constants (#2054) 2024-05-18 23:12:11 +00:00
datetime.rs Add datetime() and datetime_utc() functions (#2167) 2024-06-14 22:48:34 -07:00
delimiters.rs Use box-drawing characters in error messages (#1798) 2023-12-29 21:25:30 +00:00
directories.rs Add functions to return XDG base directories (#1822) 2024-01-11 23:50:04 +00:00
dotenv.rs Load environment file from dotenv-path relative to working directory (#2152) 2024-06-13 20:21:00 +00:00
edit.rs Remove dependency on cradle (#2169) 2024-06-18 02:42:16 +00:00
equals.rs Do use super::*; instead of use crate::common::*; (#1239) 2022-06-19 04:56:31 +00:00
error_messages.rs Allow setting custom confirm prompt (#1834) 2024-01-13 02:44:13 +00:00
evaluate.rs Add / operator (#1237) 2022-06-25 09:39:06 +00:00
examples.rs Do use super::*; instead of use crate::common::*; (#1239) 2022-06-19 04:56:31 +00:00
export.rs Add dotenv-load setting (#778) 2021-03-28 22:38:07 -07:00
fallback.rs Use box-drawing characters in error messages (#1798) 2023-12-29 21:25:30 +00:00
fmt.rs Remove dependency on cradle (#2169) 2024-06-18 02:42:16 +00:00
functions.rs Allow abbreviating functions ending in _directory to _dir (#2235) 2024-07-07 22:47:18 +00:00
global.rs Add --global-justfile flag (#1846) 2024-05-19 09:29:13 +00:00
groups.rs List recipes by group in group justfile order with just --list --unsorted (#2164) 2024-06-15 03:04:47 +00:00
ignore_comments.rs Don't analyze comments when ignore-comments is set (#2180) 2024-06-21 20:39:34 +00:00
imports.rs Allow multiple imports of the same file in different modules (#2065) 2024-05-20 08:04:03 +00:00
init.rs Add invocation_directory_native() (#1507) 2023-01-13 19:03:14 +00:00
interrupts.rs Downgrade to TLS 1.2 in install script (#1536) 2023-01-27 02:49:03 +00:00
invocation_directory.rs Add just_pid function (#1833) 2024-01-12 03:22:27 +00:00
json.rs Give modules doc comments for --list (#2199) 2024-06-28 21:13:11 -07:00
lib.rs Remove dependency on cradle (#2169) 2024-06-18 02:42:16 +00:00
line_prefixes.rs Do use super::*; instead of use crate::common::*; (#1239) 2022-06-19 04:56:31 +00:00
list.rs Give modules doc comments for --list (#2199) 2024-06-28 21:13:11 -07:00
man.rs Add --man subcommand (#2041) 2024-05-15 07:28:50 +00:00
misc.rs Improve argument parsing and error handling for submodules (#2154) 2024-06-14 02:41:45 +00:00
modules.rs Allow comments after mod statements (#2201) 2024-06-27 18:47:33 +00:00
multibyte_char.rs Fix multibyte codepoint crash (#1243) 2022-06-21 00:24:13 +00:00
newline_escape.rs Use box-drawing characters in error messages (#1798) 2023-12-29 21:25:30 +00:00
no_aliases.rs Add --no-aliases to hide aliases in --list (#1961) 2024-03-26 12:20:46 -07:00
no_cd.rs Add [no-cd] attribute (#1400) 2022-11-02 23:37:35 -07:00
no_dependencies.rs Add --no-deps to skip running recipe dependencies (#1819) 2024-01-09 08:40:08 +00:00
no_exit_message.rs Use box-drawing characters in error messages (#1798) 2023-12-29 21:25:30 +00:00
os_attributes.rs Add OS Configuration Attributes (#1387) 2022-10-31 00:52:03 -07:00
parser.rs Allow comments on same line as settings (#1339) 2022-09-10 15:19:49 -07:00
positional_arguments.rs Add [positional-arguments] attribute (#2151) 2024-06-13 19:35:14 +00:00
private.rs Stabilize fallback (#1471) 2023-01-04 06:31:56 +00:00
quiet.rs Add set quiet and [no-quiet] (#1704) 2024-01-12 20:38:23 +00:00
quote.rs Stabilize fallback (#1471) 2023-01-04 06:31:56 +00:00
readme.rs Cleanup (#2026) 2024-05-14 20:07:41 -07:00
recursion_limit.rs Use box-drawing characters in error messages (#1798) 2023-12-29 21:25:30 +00:00
regexes.rs Do use super::*; instead of use crate::common::*; (#1239) 2022-06-19 04:56:31 +00:00
run.rs Stabilize fallback (#1471) 2023-01-04 06:31:56 +00:00
search_arguments.rs Test passing dot as argument between justfiles (#1530) 2023-01-25 05:33:43 +00:00
search.rs Lexiclean search directory so .. does not check the current directory (#2236) 2024-07-08 02:12:07 +00:00
shadowing_parameters.rs Allow recipe parameters to shadow variables (#1480) 2023-01-10 00:59:02 +00:00
shebang.rs Use --command-color when printing shebang recipe commands (#1911) 2024-05-15 00:53:59 +00:00
shell_expansion.rs Add set dotenv-required to require an environment file (#2116) 2024-05-30 23:12:07 +00:00
shell.rs Test shell not found error messages (#2145) 2024-06-11 13:10:32 -07:00
show.rs Fix fzf chooser preview with space-separated module paths (#2141) 2024-06-09 01:01:24 +00:00
slash_operator.rs Use box-drawing characters in error messages (#1798) 2023-12-29 21:25:30 +00:00
string.rs Use box-drawing characters in error messages (#1798) 2023-12-29 21:25:30 +00:00
subsequents.rs Use box-drawing characters in error messages (#1798) 2023-12-29 21:25:30 +00:00
summary.rs Allow unstable features with --summary (#2210) 2024-06-29 18:12:31 -07:00
tempdir.rs Write shebang recipes to $XDG_RUNTIME_DIR (#2128) 2024-06-05 19:03:14 +00:00
test.rs Load environment file from dotenv-path relative to working directory (#2152) 2024-06-13 20:21:00 +00:00
timestamps.rs Add --timestamp-format (#2106) 2024-05-29 09:28:45 +00:00
undefined_variables.rs Use box-drawing characters in error messages (#1798) 2023-12-29 21:25:30 +00:00
unexport.rs Fix unexport syntax conflicts (#2158) 2024-06-14 19:39:34 +00:00
unstable.rs Allow unstable features to be enabled with environment variable (#1588) 2023-10-09 03:47:20 +00:00
windows_shell.rs Fix spelling (#1463) 2022-12-30 20:36:08 +00:00
windows.rs Test bare bash path in shebang on windows (#2144) 2024-06-13 19:19:22 +00:00
working_directory.rs Placate clippy (#1423) 2022-11-23 00:36:23 +00:00

use super::*;

#[test]
fn readme() {
  let mut justfiles = Vec::new();
  let mut current = None;

  for line in fs::read_to_string("README.md").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 == "```just" {
      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);
  }
}