about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/editors/nano/test-with-expect.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/editors/nano/test-with-expect.nix')
-rw-r--r--nixpkgs/pkgs/applications/editors/nano/test-with-expect.nix35
1 files changed, 35 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/editors/nano/test-with-expect.nix b/nixpkgs/pkgs/applications/editors/nano/test-with-expect.nix
new file mode 100644
index 000000000000..bd48eba4324b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/nano/test-with-expect.nix
@@ -0,0 +1,35 @@
+{ nano, expect, runCommand, writeScriptBin, runtimeShell }:
+
+let expect-script = writeScriptBin "expect-script" ''
+  #!${expect}/bin/expect -f
+
+  # Load nano
+  spawn nano file.txt
+  expect "GNU nano ${nano.version}"
+
+  # Add some text to the buffer
+  send "Hello world!"
+  expect "Hello world!"
+
+  # Send ctrl-x (exit)
+  send "\030"
+  expect "Save modified buffer?"
+
+  # Answer "yes"
+  send "y"
+  expect "File Name to Write"
+
+  # Send "return" to accept the file path.
+  send "\r"
+  sleep 1
+  exit
+''; in
+runCommand "nano-test-expect"
+{
+  nativeBuildInputs = [ nano expect ];
+  passthru = { inherit expect-script; };
+} ''
+  expect -f ${expect-script}/bin/expect-script
+  grep "Hello world!" file.txt
+  touch $out
+''