Create Todos 124 S8978a1cc→

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

Tests (7)

A

Create a new todo item 124 T4f7994e5→

Tags
first smoke step:06 story:12445 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 124', 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 124 T7ffb0f41→

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

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

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

Scenario('Create multiple todo items 124', 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 124 T4425270a→

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

### Steps
1. Enter a Todo text containing various characters
2. Verify that the entered Todo text is displayed in the list

### Expected Result
* The Todo text is displayed correctly in the list, even if it contains special or weird characters
Code
Before(async ({ I, TodosPage }) => {
  TodosPage.goto()
});

Data(examples).
Scenario('Todos containing weird characters 124', 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 124 T29338ae2→

Tags
first smoke step:06 story:12445 tag_A user_flow
Description
<!-- ai/agent generated description -->
### TEST TITLE: Text input field should be cleared after each item
### TEST SUITE: Todo List Functionality

### 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 has been cleared

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

Scenario('Text input field should be cleared after each item 124', 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 124 Tcdb55ba5→

Tags
first smoke step:06 story:12445 tag_A user_flow
Description
<!-- ai/agent generated description -->
### TEST TITLE: Verify text input is trimmed for new Todo items
### TEST SUITE: Todo List Application

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

### Steps
1. Enter a new Todo item with text containing leading and trailing whitespace.
2. Verify that the Todo item is displayed in the list with the text trimmed.

### Expected Result
* The new Todo item is displayed with its text trimmed, removing any leading or trailing whitespace.
Code
Before(async ({ I, TodosPage }) => {
  TodosPage.goto()
});

Scenario('Text input should be trimmed 124', 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 124 Ta807b572→

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

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

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

Scenario('New todos should be added to the bottom of the list 124', 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 124 T55e9585a→

Tags
first smoke step:06 story:12445 tag_A user_flow
Description
<!-- ai/agent generated description -->
### TEST TITLE: Footer visibility when adding TODOs
### TEST SUITE: Todo Page Functionality

### 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

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

Scenario('Footer should be visible when adding TODOs 124', 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()
})