diff --git a/testsuite/expect/test19.4 b/testsuite/expect/test19.4
index 660aae1a3b05019f02cfaadd20b6d2a9f20928fb..47e38b2c2f000d627736ed6808b4f0609b3ffee3 100755
--- a/testsuite/expect/test19.4
+++ b/testsuite/expect/test19.4
@@ -46,7 +46,7 @@ if {![regexp "${user}\\($number\\)" [get_config_param "SlurmUser"]] || $user eq
 #
 set cwd "[$bin_pwd]"
 exec $bin_rm -f $file_in $file_out
-make_bash_script $file_in "$bin_echo RECONFIG >$cwd/$file_out"
+make_bash_script $file_in "$bin_echo JOB COMPLETED >$cwd/$file_out"
 
 proc cleanup {} {
 	global bin_rm file_in file_out strigger uid
@@ -82,53 +82,27 @@ wait_for -timeout 5 -pollinterval .1 {[get_config_param "DebugFlags"] eq "Trigge
 
 run_command -fail "$strigger --clear --quiet --user=$uid"
 
-# Create a trigger on a reconfig event
-if {![regexp "trigger set" [run_command_output -fail "$strigger --set -v --offset=0 --reconfig --program=$cwd/$file_in"]]} {
+# Submit a job and create a trigger on a job completion event
+set job_id [submit_job -fail "--wrap \"$bin_sleep 60\""]
+wait_for_job -fail $job_id "RUNNING"
+if {![regexp "trigger set" [run_command_output -fail "$strigger --set -v --jobid=$job_id --fini --program=$cwd/$file_in"]]} {
 	fail "Trigger creation failure"
 }
 
 # Verify that the trigger has been created
-if {![regexp "$file_in" [run_command_output -fail "$strigger --get -v --reconfig --user=$uid"]]} {
+if {![regexp "$file_in" [run_command_output -fail "$strigger --get -v --jobid=$job_id --fini --user=$uid"]]} {
 	# TODO: Temporary variable to debug bug 9665 (remove once fixed)
 	set trigger_get_failed true
 	fail "Trigger get failure"
 }
 
 #
-# Try to trigger event
+# Cancel the job to trigger a job completion event
 #
-set invalid 0
-spawn $scontrol reconfig
-expect {
-	-re "Invalid user" {
-		set invalid 1
-		exp_continue
-	}
-	eof {
-		wait
-	}
-}
-if {$invalid == 0} {
-	# Add delay for slurmctld to process triggers (every 15 secs)
-	exec sleep 15
-
-	# Plus time for cross-platform NSF delays
-	if {[wait_for_file $file_out] != 0} {
-		fail "File $file_out is missing"
-	} else {
-		set reconfig 0
-		spawn $bin_cat $file_out
-		expect {
-			-re "RECONFIG" {
-				set reconfig 1
-				exp_continue
-			}
-			eof {
-				wait
-			}
-		}
-		if {$reconfig == 0} {
-			fail "File $file_out contents are bad"
-		}
-	}
+run_command -fail "$scancel $job_id"
+# Triggers are only processed once every 15 seconds by default
+if [wait_for_file -timeout 30 $file_out] {
+	fail "Expected trigger output file ($file_out) did not appear within the expected timeframe (30s)"
+} elseif {![regexp "JOB COMPLETED" [run_command_output -fail "$bin_cat $file_out"]]} {
+	fail "Trigger output file ($file_out) does not contain the expected contents"
 }