33 lines
1.0 KiB
Racket
33 lines
1.0 KiB
Racket
#lang racket/base
|
|
|
|
(require rackunit
|
|
"../main.rkt")
|
|
|
|
;; The Racket reader parses '-i as the complex number 0-1i. git-grep treats
|
|
;; that value as the Git -i option when it appears in option position.
|
|
(check-equal? '-i 0-1i)
|
|
|
|
;; Exercise the public argument parser indirectly in a temporary repository.
|
|
(require racket/file)
|
|
|
|
(define tmp (make-temporary-file "git-command-grep-reader~a" 'directory))
|
|
|
|
(dynamic-wind
|
|
void
|
|
(lambda ()
|
|
(parameterize ([current-directory tmp])
|
|
(git 'init)
|
|
(call-with-output-file "sample.txt"
|
|
#:exists 'truncate/replace
|
|
(lambda (out)
|
|
(displayln "Todo" out)
|
|
(displayln "other" out)))
|
|
(git 'add "sample.txt")
|
|
(define entries (git 'grep '-i "todo"))
|
|
(check-equal? (length entries) 1)
|
|
(check-equal? (git-grep-entry-path (car entries)) "sample.txt")
|
|
(check-equal? (git-grep-entry-line-number (car entries)) 1)
|
|
(check-equal? (git-grep-entry-line (car entries)) "Todo")))
|
|
(lambda ()
|
|
(delete-directory/files tmp #:must-exist? #f)))
|