yarn: Fix state=latest not working with global=true (#5829)

* Yarn module: fix state=latest not working with global=true

* fix whitespace

* add changelog fragment

* add integration test cases

* add only tests for this PR (install+upgrade)

* fix assuming default global dir

* fix list() not working when global=true and name a package with no binary

* remove ignores

* whitespace

* Update changelogs/fragments/5829-fix-yarn-global.yml

Co-authored-by: Felix Fontein <felix@fontein.de>

* Update changelogs/fragments/5829-fix-yarn-global.yml

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>

---------

Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
This commit is contained in:
Sargun Vohra 2023-02-13 12:54:56 -08:00 committed by GitHub
commit 4c4ef80ca9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 112 additions and 25 deletions

View file

@ -39,6 +39,7 @@
package: 'iconv-lite'
environment:
PATH: "{{ node_bin_path }}:{{ansible_env.PATH}}"
YARN_IGNORE_ENGINES: true
block:
# Get the version of Yarn and register to a variable
@ -135,3 +136,89 @@
assert:
that:
- yarn_uninstall_package is changed
- name: 'Global install binary with explicit version (older version of package)'
yarn:
global: true
executable: '{{ yarn_bin_path }}/yarn'
name: prettier
version: 2.0.0
state: present
environment:
PATH: '{{ node_bin_path }}:{{ ansible_env.PATH }}'
register: yarn_global_install_old_binary
- assert:
that:
- yarn_global_install_old_binary is changed
- name: 'Global upgrade old binary'
yarn:
global: true
executable: '{{ yarn_bin_path }}/yarn'
name: prettier
state: latest
environment:
PATH: '{{ node_bin_path }}:{{ ansible_env.PATH }}'
register: yarn_global_update_old_binary
- assert:
that:
- yarn_global_update_old_binary is changed
- name: 'Global remove a binary'
yarn:
global: true
executable: '{{ yarn_bin_path }}/yarn'
name: prettier
state: absent
environment:
PATH: '{{ node_bin_path }}:{{ ansible_env.PATH }}'
register: yarn_global_uninstall_binary
- assert:
that:
- yarn_global_uninstall_binary is changed
- name: 'Global install package with no binary with explicit version (older version of package)'
yarn:
global: true
executable: '{{ yarn_bin_path }}/yarn'
name: left-pad
version: 1.1.0
state: present
environment:
PATH: '{{ node_bin_path }}:{{ ansible_env.PATH }}'
register: yarn_global_install_old_package
- assert:
that:
- yarn_global_install_old_package is changed
- name: 'Global upgrade old package with no binary'
yarn:
global: true
executable: '{{ yarn_bin_path }}/yarn'
name: left-pad
state: latest
environment:
PATH: '{{ node_bin_path }}:{{ ansible_env.PATH }}'
register: yarn_global_update_old_package
- assert:
that:
- yarn_global_update_old_package is changed
- name: 'Global remove a package with no binary'
yarn:
global: true
executable: '{{ yarn_bin_path }}/yarn'
name: left-pad
state: absent
environment:
PATH: '{{ node_bin_path }}:{{ ansible_env.PATH }}'
register: yarn_global_uninstall_package
- assert:
that:
- yarn_global_uninstall_package is changed