X-Git-Url: http://git.giacomolli.uk/onechat/blobdiff_plain/4a605fa39078354654ae648e489c117c7a445197..ae8532ff0e9d3d676fec5f48780a62e58aa6882d:/agent_test.go diff --git a/agent_test.go b/agent_test.go index dabecd2..be74b40 100644 --- a/agent_test.go +++ b/agent_test.go @@ -46,7 +46,7 @@ func TestRenamedAgentKeepsItsCacheKey(t *testing.T) { config := agent.config config.Name = "Lena" - writeAgentConfig(t, dir, config) + agentWriteTestConfig(t, dir, config) renamed, err := openAgent(dir) require.NoError(t, err) @@ -100,16 +100,34 @@ 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)) - require.NoError(t, os.WriteFile(filepath.Join(dir, instructionsFileName), []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)+",") } -// writeAgentConfig writes config as the config.json of the agent in dir. -func writeAgentConfig(t *testing.T, dir string, config AgentConfig) { +// agentWriteTestConfig writes config as the config.json of the agent in dir. +func agentWriteTestConfig(t *testing.T, dir string, config AgentConfig) { t.Helper() data, err := json.Marshal(config)