Skip to content

Commit

Permalink
add a test for login on stdin
Browse files Browse the repository at this point in the history
  • Loading branch information
Eh2406 committed Mar 4, 2022
1 parent 7ca522a commit 88f3bb9
Showing 1 changed file with 32 additions and 0 deletions.
32 changes: 32 additions & 0 deletions tests/testsuite/registry.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@ use cargo_test_support::{cargo_process, registry::registry_url};
use cargo_test_support::{git, install::cargo_home, t};
use cargo_util::paths::remove_dir_all;
use std::fs::{self, File};
use std::io::{BufRead, BufReader, Write};
use std::path::Path;
use std::process::Stdio;

#[cargo_test]
fn simple() {
Expand Down Expand Up @@ -883,6 +885,36 @@ fn login_with_differently_sized_token() {
assert_eq!(credentials, "[registry]\ntoken = \"lmaolmaolmao\"\n");
}

#[cargo_test]
fn login_with_token_on_stdin() {
registry::init();
let credentials = paths::home().join(".cargo/credentials");
fs::remove_file(&credentials).unwrap();
cargo_process("login lmao -v").run();
let mut cargo = cargo_process("login").build_command();
cargo
.stdin(Stdio::piped())
.stdout(Stdio::piped())
.stderr(Stdio::piped());
let mut child = cargo.spawn().unwrap();
let out = BufReader::new(child.stdout.as_mut().unwrap())
.lines()
.next()
.unwrap()
.unwrap();
assert!(out.starts_with("please paste the API Token found on "));
assert!(out.ends_with("/me below"));
child
.stdin
.as_ref()
.unwrap()
.write_all(b"some token\n")
.unwrap();
child.wait().unwrap();
let credentials = fs::read_to_string(&credentials).unwrap();
assert_eq!(credentials, "[registry]\ntoken = \"some token\"\n");
}

#[cargo_test]
fn bad_license_file() {
Package::new("foo", "1.0.0").publish();
Expand Down

0 comments on commit 88f3bb9

Please sign in to comment.