import path from 'path'; import { describe, expect, it } from 'vitest'; import { parse } from '../src/pkgbase.js'; describe('pkgbase parser', () => { it('can detect an add operation', async () => { const expected = { build: true, move: false, delete: [], actions: { addRepo: 'system-goblins', removeRepo: null, triggersBuild: false, triggersRebuild: true, triggersRepoAdd: true, triggersRepoRemove: false, triggersNoCheck: false } }; const rDir = 'add-clean'; await expect(parse(path.join('test', 'resources', rDir, 'pkgbase.old.yaml'), path.join('test', 'resources', rDir, 'pkgbase.new.yaml'))).resolves.toEqual(expected); }); it('can remove dangling packages in an add operation', async () => { const expected = { build: true, move: false, delete: [ { architecture: "x86_64", package: "pidgin", repository: "world", version: "2.14.14-3", } ], actions: { addRepo: 'world', removeRepo: null, triggersBuild: true, triggersRebuild: false, triggersRepoAdd: true, triggersRepoRemove: false, triggersNoCheck: false } }; const rDir = 'add-with-dropped'; await expect(parse(path.join('test', 'resources', rDir, 'pkgbase.old.yaml'), path.join('test', 'resources', rDir, 'pkgbase.new.yaml'))).resolves.toEqual(expected); }); it('can detect a move operation', async () => { const expected = { build: false, move: true, delete: [{ architecture: "x86_64", package: "opencascade", repository: "world-gremlins", version: "1:7.9.2-1", }], actions: { addRepo: 'world', removeRepo: 'world-gremlins', triggersBuild: false, triggersRebuild: false, triggersRepoAdd: true, triggersRepoRemove: true, triggersNoCheck: false } }; const rDir = 'move-clean'; await expect(parse(path.join('test', 'resources', rDir, 'pkgbase.old.yaml'), path.join('test', 'resources', rDir, 'pkgbase.new.yaml'))).resolves.toEqual(expected); }); it('can remove dangling packages in a move operation', async () => { const expected = { build: false, move: true, delete: [ { architecture: "x86_64", package: "pidgin", repository: "world", version: "2.14.14-3", }, { architecture: "x86_64", package: "libpurple", repository: "world-gremlins", version: "2.14.14-4", }, { architecture: "x86_64", package: "finch", repository: "world-gremlins", version: "2.14.14-4", } ], actions: { addRepo: 'world', removeRepo: 'world-gremlins', triggersBuild: false, triggersRebuild: false, triggersRepoAdd: true, triggersRepoRemove: true, triggersNoCheck: false } }; const rDir = 'move-with-dropped'; await expect(parse(path.join('test', 'resources', rDir, 'pkgbase.old.yaml'), path.join('test', 'resources', rDir, 'pkgbase.new.yaml'))).resolves.toEqual(expected); }); it('can detect a delete operation', async () => { const expected = { build: false, move: false, delete: [ { architecture: "any", package: "python-nntplib", repository: "world", version: "3.13.0-2", }, { architecture: "any", package: "python-cgi", repository: "world", version: "3.13.0-2", }, { architecture: "any", package: "python-mailcap", repository: "world", version: "3.13.0-2", } ], actions: { addRepo: null, removeRepo: 'world', triggersBuild: false, triggersRebuild: false, triggersRepoAdd: false, triggersRepoRemove: true, triggersNoCheck: false } }; const rDir = 'remove'; await expect(parse(path.join('test', 'resources', rDir, 'pkgbase.old.yaml'), path.join('test', 'resources', rDir, 'pkgbase.new.yaml'))).resolves.toEqual(expected); }); }); //# sourceMappingURL=pkgbase.test.js.map