145 lines
4.9 KiB
Gherkin
145 lines
4.9 KiB
Gherkin
Feature: Services Full Coverage
|
|
As a developer
|
|
I want to test all service methods
|
|
So that service layer has complete coverage
|
|
|
|
# Context Service Tests
|
|
Scenario: Context service adds file successfully
|
|
Given a context service instance
|
|
When I add a file path to context
|
|
Then the file should be tracked in context
|
|
|
|
Scenario: Context service adds directory recursively
|
|
Given a context service instance
|
|
When I add a directory recursively to context
|
|
Then all files in directory should be tracked
|
|
|
|
Scenario: Context service removes file from context
|
|
Given a context service instance with files
|
|
When I remove a file from context
|
|
Then the file should not be in context
|
|
|
|
Scenario: Context service clears all context
|
|
Given a context service instance with files
|
|
When I clear the service context
|
|
Then the services context should be empty
|
|
|
|
Scenario: Context service lists all files
|
|
Given a context service instance with files
|
|
When I list the context files
|
|
Then I should get all tracked files
|
|
|
|
Scenario: Context service handles missing file
|
|
Given a context service instance
|
|
When I add a non-existent file to context
|
|
Then it should handle the error gracefully
|
|
|
|
Scenario: Context service loads context from disk
|
|
Given a context service instance
|
|
And saved context on disk
|
|
When I load the context
|
|
Then the context should be restored
|
|
|
|
Scenario: Context service saves context to disk
|
|
Given a context service instance with files
|
|
When I save the context
|
|
Then the context should be persisted
|
|
|
|
# Plan Service Tests
|
|
Scenario: Plan service creates new plan
|
|
Given a plan service instance
|
|
When I create a new plan with instruction
|
|
Then a new service plan should be created
|
|
|
|
Scenario: Plan service builds plan
|
|
Given a plan service instance with a plan
|
|
When I build the service plan
|
|
Then the plan should be built
|
|
|
|
Scenario: Plan service applies plan
|
|
Given a plan service instance with a built plan
|
|
When I apply the plan
|
|
Then the service changes should be applied
|
|
|
|
Scenario: Plan service lists all plans
|
|
Given a plan service instance with multiple plans
|
|
When I list all service plans
|
|
Then I should get all plans
|
|
|
|
Scenario: Plan service gets plan by id
|
|
Given a plan service instance with a plan
|
|
When I get the plan by id
|
|
Then I should receive the plan details
|
|
|
|
Scenario: Plan service deletes plan
|
|
Given a plan service instance with a plan
|
|
When I delete the plan
|
|
Then the plan should be removed
|
|
|
|
Scenario: Plan service updates plan status
|
|
Given a plan service instance with a plan
|
|
When I update the plan status
|
|
Then the status should be changed
|
|
|
|
Scenario: Plan service reverts plan
|
|
Given a plan service instance with an applied plan
|
|
When I revert the plan
|
|
Then the changes should be reverted
|
|
|
|
# Project Service Tests
|
|
Scenario: Project service initializes project
|
|
Given a project service instance
|
|
When I initialize a new project
|
|
Then the project should be created
|
|
|
|
Scenario: Project service gets project status
|
|
Given a project service instance with a project
|
|
When I get the project status
|
|
Then I should receive project information
|
|
|
|
Scenario: Project service detects existing project
|
|
Given a project service instance with a project
|
|
When I check if project exists
|
|
Then it should detect the existing project
|
|
|
|
Scenario: Project service forces reinitialization
|
|
Given a project service instance with a project
|
|
When I reinitialize with force
|
|
Then the project should be recreated
|
|
|
|
Scenario: Project service creates default ignore file
|
|
Given a project service instance
|
|
When I initialize a project with default ignore file
|
|
Then the default ignore file should be created
|
|
|
|
Scenario: Project service reports stats with no plans
|
|
Given a project service instance
|
|
When I request stats for a project without plans
|
|
Then the stats should show zero project activity
|
|
|
|
Scenario: Project service updates file filters
|
|
Given a project service instance with a project
|
|
When I update project file filters with changes
|
|
Then the project filters should be updated and deduplicated
|
|
|
|
Scenario: Project service handles missing project on filter update
|
|
Given a project service instance
|
|
When I update filters for a missing project
|
|
Then a project not found error should be raised
|
|
|
|
Scenario: Project service skips deleting projects without ids
|
|
Given a project service instance
|
|
When I delete a project without an id
|
|
Then deleting the project should be a no-op
|
|
|
|
# Application Container Tests
|
|
Scenario: Application container provides services
|
|
Given an application container
|
|
When I request each service
|
|
Then all services should be available
|
|
|
|
Scenario: Application container is singleton
|
|
Given an application container
|
|
When I get the container multiple times
|
|
Then it should return the same instance
|