Create Todos 116 S809b00c6→

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

Tests (7)

A

Create a new todo item 116 T6a7b9eda→

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 116', 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 116 T0617c4b9→

Tags
first smoke step:06 story:12345 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 three items

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

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

Tags
first smoke step:06 story:12345 tag_A user_flow
Description
<!-- ai/agent generated description -->
### TEST TITLE: Todos containing weird characters
### TEST SUITE: Todo List Tests

### 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 is displayed with the correct text, even if it contains unusual characters
Code
Before(async ({ I, TodosPage }) => {
  TodosPage.goto()
});

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

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 new todo item with the text "foo"
2. Verify that the input field is cleared

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

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

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 text containing leading and trailing whitespace.
2. Verify that the Todo item is displayed with the text trimmed, removing the leading and trailing whitespace.

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

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

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 three new todo items in the correct order ("first", "second", "last")
Code
Before(async ({ I, TodosPage }) => {
  TodosPage.goto()
});

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

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

### 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 116', 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()
})