This commit is contained in:
parent
76a047b9ca
commit
b6de7831e5
5 changed files with 62 additions and 1 deletions
|
@ -3,10 +3,11 @@ use std::path::Path;
|
|||
|
||||
use crate::model::{Config, FoundMarkers, Line, Marker};
|
||||
use anyhow::Result;
|
||||
use ignore::Walk;
|
||||
|
||||
pub fn find_markers(config: Config) -> Result<FoundMarkers, anyhow::Error> {
|
||||
let mut markers = FoundMarkers::default();
|
||||
for file in ignore::Walk::new(config.fs().base()).flatten() {
|
||||
for file in Walk::new(config.fs().base()).flatten() {
|
||||
let path = file.path();
|
||||
if config.fs().path_is_file(path)? {
|
||||
scan_file(path, &config, &mut markers)?;
|
||||
|
|
7
src/tests/data/file_1.txt
Normal file
7
src/tests/data/file_1.txt
Normal file
|
@ -0,0 +1,7 @@
|
|||
This is a text file.
|
||||
|
||||
It contains a todo comment: // TODO: this is it
|
||||
|
||||
It also contains a fix-me comment: // FIXME: and this is it
|
||||
|
||||
Both of these are missing an issue identifier.
|
5
src/tests/data/file_2.txt
Normal file
5
src/tests/data/file_2.txt
Normal file
|
@ -0,0 +1,5 @@
|
|||
This is another text file.
|
||||
|
||||
It also has a todo comment: // TODO: (#23) and it has an issue number
|
||||
|
||||
Here is a fix-me comment: // FIXME: (#43) and is also has an issue number
|
|
@ -2,3 +2,4 @@
|
|||
use super::*;
|
||||
|
||||
mod init;
|
||||
mod scanner;
|
||||
|
|
47
src/tests/scanner.rs
Normal file
47
src/tests/scanner.rs
Normal file
|
@ -0,0 +1,47 @@
|
|||
use model::Config;
|
||||
use patterns::{issue_pattern, marker_pattern};
|
||||
|
||||
//
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn find_markers_in_dir() -> anyhow::Result<()> {
|
||||
//given
|
||||
let fs = kxio::fs::temp()?;
|
||||
fs.file_write(
|
||||
&fs.base().join("file_1.txt"),
|
||||
include_str!("data/file_1.txt"),
|
||||
)?;
|
||||
fs.file_write(
|
||||
&fs.base().join("file_2.txt"),
|
||||
include_str!("data/file_2.txt"),
|
||||
)?;
|
||||
|
||||
let config = Config::builder()
|
||||
.fs(fs.clone())
|
||||
.server("".to_string())
|
||||
.repo("".to_string())
|
||||
.prefix_pattern(marker_pattern()?)
|
||||
.issue_pattern(issue_pattern()?)
|
||||
.build();
|
||||
|
||||
//when
|
||||
let markers = find_markers(config)?;
|
||||
|
||||
//then
|
||||
assert_eq!(
|
||||
markers.to_string().lines().collect::<Vec<_>>(),
|
||||
vec![
|
||||
"- Invalid: file_1.txt#2:",
|
||||
" It contains a todo comment: // TODO: this is it",
|
||||
"- Invalid: file_1.txt#4:",
|
||||
" It also contains a fix-me comment: // FIXME: and this is it",
|
||||
"- Valid : file_2.txt#2:",
|
||||
" It also has a todo comment: // TODO: (#23) and it has an issue number",
|
||||
"- Valid : file_2.txt#4:",
|
||||
" Here is a fix-me comment: // FIXME: (#43) and is also has an issue number"
|
||||
]
|
||||
);
|
||||
|
||||
Ok(())
|
||||
}
|
Loading…
Reference in a new issue