]> git.giacomolli.uk - onechat/blobdiff - agent_test.go
Check error handling and common Go mistakes
[onechat] / agent_test.go
index 775e2fe454dc23a8df38cf17bcbc16e21f2dbcb3..a9418aee53a8c324aa2266582fdeed0b052ae15f 100644 (file)
@@ -100,12 +100,29 @@ func TestAgentPromptReadsTheInstructionsEachTime(t *testing.T) {
 
        text, err := agent.Prompt()
        require.NoError(t, err)
-       require.Equal(t, prompt(agent.config.Name, ""), text)
+       require.Equal(t, prompt(agent.config.Name, filepath.Join(dir, agentInstructionsFileName), ""), text)
 
        require.NoError(t, os.WriteFile(filepath.Join(dir, agentInstructionsFileName), []byte("I am Lena.\n"), 0o600))
        text, err = agent.Prompt()
        require.NoError(t, err)
-       require.Equal(t, prompt(agent.config.Name, "I am Lena."), text)
+       require.Equal(t, prompt(agent.config.Name, filepath.Join(dir, agentInstructionsFileName), "I am Lena."), text)
+}
+
+func TestAgentPromptUsesAnAbsoluteInstructionsPath(t *testing.T) {
+       dir := t.TempDir()
+       workdir, err := os.Getwd()
+       require.NoError(t, err)
+
+       relative, err := filepath.Rel(workdir, dir)
+       require.NoError(t, err)
+       require.False(t, filepath.IsAbs(relative))
+
+       agent, err := openAgent(relative)
+       require.NoError(t, err)
+
+       text, err := agent.Prompt()
+       require.NoError(t, err)
+       require.Contains(t, text, "The user's instructions live in the file "+filepath.Join(dir, agentInstructionsFileName)+",")
 }
 
 // agentWriteTestConfig writes config as the config.json of the agent in dir.