# -------------------------------------------------------------
# Setup steps
- name: Clean up the working directory and files
  file:
    path: '{{ output_dir }}'
    state: absent

- name: Create the working directory
  file:
    path: '{{ output_dir }}'
    state: directory

- name: copy an existing file in place with comments
  copy:
    src: existing_authorized_keys
    dest: "{{ output_dir | expanduser }}/authorized_keys"

- name: add multiple keys different order
  authorized_key:
    user: root
    key: "{{ multiple_key_different_order_2 }}"
    state: present
    path: "{{ output_dir | expanduser }}/authorized_keys"
  register: result

- name: get the file content
  shell: cat "{{ output_dir | expanduser }}/authorized_keys"
  changed_when: no
  register: multiple_keys_existing

- name: assert that the key was added and comments and ordering preserved
  assert:
    that:
      - 'result.changed == True'
      - '"# I like candy" in multiple_keys_existing.stdout'
      - '"# I like candy" in multiple_keys_existing.stdout_lines[0]'
      - '"ssh-rsa DATA_BASIC 1@testing" in multiple_keys_existing.stdout'
      # The specific index is a little fragile, but I want to verify the line shows up
      # as the 3rd line in the new entries after the existing entries and comments are preserved
      - '"ssh-rsa DATA_BASIC 1@testing" in multiple_keys_existing.stdout_lines[7]'

# start afresh

- name: remove file foo.txt
  file:
    path: "{{ output_dir | expanduser }}/authorized_keys"
    state: absent

- name: touch the authorized_keys file
  file:
    dest: "{{ output_dir }}/authorized_keys"
    state: touch
  register: result

- name: assert that the authorized_keys file was created
  assert:
    that:
      - 'result.changed == True'
      - 'result.state == "file"'
