Create Todos 44 Sf20cdf3f→

0 7 0
first smoke step:06 story:12345 tag_A user_flow

Tests (7)

A

Create a new todo item 44 T2386d083→

Tags
first smoke step:06 story:12345 tag_A user_flow
Description
<!-- ai/agent generated description -->
### Preconditions
* Navigate to the Todos page

### Steps
1. Verify that the todo list is empty
2. Create a new todo item with the text "foo"
3. Verify that the new todo item is displayed on the list

### Expected Result
* The todo list contains the new todo item with the text "foo"
* A screenshot is taken after creating the new todo item
Code
Before(async ({ I, TodosPage }) => {
  TodosPage.goto()
});

Scenario('Create a new todo item 44', async ({ I, TodosPage }) => {
  I.say('Given I have an empty todo list')

  I.say('When I create a todo "foo"')
  TodosPage.enterTodo('foo')

  I.say('Then I see the new todo on my list')
  TodosPage.seeNumberOfTodos(1)

  I.saveScreenshot('create-todo-item.png')
});

A

Create multiple todo items 44 T2280af4d→

Tags
first smoke step:06 story:12345 tag_A user_flow
Description
<!-- ai/agent generated description -->
### TEST TITLE: Create multiple todo items44
### TEST SUITE: Create Todos44

### Preconditions
* Navigate to the Todos page
* Ensure the todo list is empty

### Steps
1. Create three new todo items with the text "foo", "bar", and "baz"
2. Verify that the todo list contains the three newly created items

### Expected Result
* The todo list displays the three todo items correctly
* A screenshot is captured after creating the todo items
Code
Before(async ({ I, TodosPage }) => {
  TodosPage.goto()
});

Scenario('Create multiple todo items 44', async ({ I, TodosPage }) => {
  I.say('Given I have an empty todo list')
  I.say('When I create todos "foo", "bar" and "baz"')
  TodosPage.enterTodo('foo')
  TodosPage.enterTodo('bar')
  TodosPage.enterTodo('baz')

  I.say('Then I have these 3 todos on my list')
  TodosPage.seeNumberOfTodos(3)

  I.saveScreenshot('create-multiple-todo-items.png')
})

A

Todos containing weird characters 44 Tcc5f0a31→

Tags
first smoke step:06 story:12345 tag_A user_flow
Description
<!-- ai/agent generated description -->
### Preconditions
* Navigate to the Todos page

### Steps
1. Enter a todo text with unusual characters
2. Verify that the todo item is displayed correctly in the list

### Expected Result
* The todo item with unusual characters is displayed correctly in the list
Code
Before(async ({ I, TodosPage }) => {
  TodosPage.goto()
});

Data(examples).
Scenario('Todos containing weird characters 44', async ({ I, current, TodosPage }) => {
  I.say('When I enter {Todo Text}')
  TodosPage.enterTodo(current['Todo Text'])

  I.say('Then I see {Result}')
  if (current['Result'] === 'is in list') {
    await TodosPage.seeNthTodoEquals(1, current['Todo Text'])
  }
})

A

Text input field should be cleared after each item 44 T87692df0→

Tags
first smoke step:06 story:12345 tag_A user_flow
Description
<!-- ai/agent generated description -->
### Preconditions
* Navigate to the Todos page
* Ensure the todo list is empty

### Steps
1. Enter a new todo item with the text "foo"
2. Verify that the input field is cleared after submitting the todo item

### Expected Result
* The input field is empty after adding the new todo item "foo"
Code
Before(async ({ I, TodosPage }) => {
  TodosPage.goto()
});

Scenario('Text input field should be cleared after each item 44', async ({ I, TodosPage }) => {
  I.say('Given I have an empty todo list')
  I.say('When I enter a new todo')
  TodosPage.enterTodo('foo')

  I.say('Then I see that the input field has been cleared')
  TodosPage.seeEmptyTodoInput()
})

A

Text input should be trimmed 44 T81291061→

Tags
first smoke step:06 story:12345 tag_A user_flow
Description
<!-- ai/agent generated description -->
### Preconditions
* Navigate to the Todos page
* Ensure the todo list is empty

### Steps
1. Enter a new todo item with extra whitespace around the text
2. Verify that the displayed todo item text is trimmed

### Expected Result
* The todo item is displayed with trimmed text, without extra whitespace
Code
Before(async ({ I, TodosPage }) => {
  TodosPage.goto()
});

Scenario('Text input should be trimmed 44', async ({ I, TodosPage }) => {
  I.say('Given I have an empty todo list')
  I.say('When I enter a todo with whitespace around the text')
  TodosPage.enterTodo('       Todo with lots of whitespace around       ')

  I.say('Then I see the trimmed text of the todo in the list')
  await TodosPage.seeNthTodoEquals(1, 'Todo with lots of whitespace around')
})

A

New todos should be added to the bottom of the list 44 T2332a409→

Tags
first smoke step:06 story:12345 tag_A user_flow
Description
<!-- ai/agent generated description -->
### Preconditions
* Navigate to the Todos page

### Steps
1. Add three new todo items with the text "first", "second", and "last"
2. Verify that the todo items are displayed in the list in the order they were added

### Expected Result
* The todo list contains the items "first", "second", and "last" in that order
Code
Before(async ({ I, TodosPage }) => {
  TodosPage.goto()
});

Scenario('New todos should be added to the bottom of the list 44', async ({ I, TodosPage }) => {
  I.say('Given I added some todos')
  TodosPage.enterTodo('first')
  TodosPage.enterTodo('second')
  TodosPage.enterTodo('last')

  I.say('When I look at my todo list')
  I.say('Then I see the todos in the order in which I added them')
  await TodosPage.seeNthTodoEquals(1, 'first')
  await TodosPage.seeNthTodoEquals(2, 'second')
  await TodosPage.seeNthTodoEquals(3, 'last')
})

A

Footer should be visible when adding TODOs 44 T8e4ec31f→

Tags
first smoke step:06 story:12345 tag_A user_flow
Description
<!-- ai/agent generated description -->
### Preconditions
* Navigate to the Todos page

### Steps
1. Verify that the footer is visible
2. Add a new todo item
3. Verify that the footer is still visible after adding the todo item

### Expected Result
* The footer remains visible both before and after adding a new todo item
Code
Before(async ({ I, TodosPage }) => {
  TodosPage.goto()
});

Scenario('Footer should be visible when adding TODOs 44', async ({ I, TodosPage }) => {
  I.say('Given I am adding todos')
  TodosPage.seeFooter()
  I.say('When I add a todo')
  TodosPage.enterTodo('first')
  I.say('Then I always see the footer')
  TodosPage.seeFooter()
})