Skip to content

Commit

Permalink
test: update F-Droid tests
Browse files Browse the repository at this point in the history
  • Loading branch information
cyb3rko committed Jan 6, 2025
1 parent 65e7f21 commit 9e935be
Showing 1 changed file with 75 additions and 7 deletions.
82 changes: 75 additions & 7 deletions services/f-droid/f-droid.tester.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,26 +31,33 @@ const testJson = `
const base = 'https://f-droid.org/api/v1'
const path = `/packages/${testPkg}`

t.create('Package is found')
t.create('f-droid.org: Package is found')
.get(`/v/${testPkg}.json`)
.intercept(nock => nock(base).get(path).reply(200, testJson))
.expectBadge({ label: 'f-droid', message: 'v0.2.7' })

t.create('Package is found (pre-release)')
t.create('f-droid.org: Package is found (pre-release)')
.get(`/v/${testPkg}.json?include_prereleases`)
.intercept(nock => nock(base).get(path).reply(200, testJson))
.expectBadge({ label: 'f-droid', message: 'v0.2.11' })

t.create('Package is not found with 403')
t.create('f-droid.org: Package is not found with 403')
.get(`/v/${testPkg}.json`)
.intercept(nock => nock(base).get(path).reply(403, 'some 403 text'))
.expectBadge({ label: 'f-droid', message: 'app not found' })

t.create('Package is not found with 404')
t.create('f-droid.org: Package is not found with 404')
.get('/v/io.shiels.does.not.exist.json')
.intercept(nock =>
nock(base)
.get('/packages/io.shiels.does.not.exist')
.reply(404, 'some 404 text'),
)
.expectBadge({ label: 'f-droid', message: 'app not found' })

t.create('Package is not found with no packages available (empty array)"')
t.create(
'f-droid.org: Package is not found with no packages available (empty array)"',
)
.get(`/v/${testPkg}.json`)
.intercept(nock =>
nock(base)
Expand All @@ -59,17 +66,78 @@ t.create('Package is not found with no packages available (empty array)"')
)
.expectBadge({ label: 'f-droid', message: 'no packages found' })

t.create('Package is not found with no packages available (missing array)"')
t.create(
'f-droid.org: Package is not found with no packages available (missing array)"',
)
.get(`/v/${testPkg}.json`)
.intercept(nock =>
nock(base).get(path).reply(200, `{"packageName":"${testPkg}"}`),
)
.expectBadge({ label: 'f-droid', message: 'no packages found' })

/* If this test fails, either the API has changed or the app was deleted. */
t.create('The real api did not change')
t.create('f-droid.org: The real api did not change')
.get('/v/org.thosp.yourlocalweather.json')
.expectBadge({
label: 'f-droid',
message: isVPlusDottedVersionAtLeastOne,
})

const base2 = 'https://apt.izzysoft.de/fdroid/api/v1'
const path2 = `/packages/${testPkg}`

t.create('custom repo: Package is found')
.get(`/v/${testPkg}.json?serverFqdn=apt.izzysoft.de&endpoint=fdroid`)
.intercept(nock => nock(base2).get(path2).reply(200, testJson))
.expectBadge({ label: 'f-droid', message: 'v0.2.7' })

t.create('custom repo: Package is found (pre-release)')
.get(
`/v/${testPkg}.json?serverFqdn=apt.izzysoft.de&endpoint=fdroid&include_prereleases`,
)
.intercept(nock => nock(base2).get(path2).reply(200, testJson))
.expectBadge({ label: 'f-droid', message: 'v0.2.11' })

t.create('custom repo: Package is not found with 403')
.get(`/v/${testPkg}.json?serverFqdn=apt.izzysoft.de&endpoint=fdroid`)
.intercept(nock => nock(base2).get(path2).reply(403, 'some 403 text'))
.expectBadge({ label: 'f-droid', message: 'app not found' })

t.create('custom repo: Package is not found with 404')
.get(
'/v/io.shiels.does.not.exist.json?serverFqdn=apt.izzysoft.de&endpoint=fdroid',
)
.intercept(nock =>
nock(base2)
.get('/packages/io.shiels.does.not.exist')
.reply(404, 'some 404 text'),
)
.expectBadge({ label: 'f-droid', message: 'app not found' })

t.create(
'custom repo: Package is not found with no packages available (empty array)"',
)
.get(`/v/${testPkg}.json?serverFqdn=apt.izzysoft.de&endpoint=fdroid`)
.intercept(nock =>
nock(base2)
.get(path2)
.reply(200, `{"packageName":"${testPkg}","packages":[]}`),
)
.expectBadge({ label: 'f-droid', message: 'no packages found' })

t.create(
'custom repo: Package is not found with no packages available (missing array)"',
)
.get(`/v/${testPkg}.json?serverFqdn=apt.izzysoft.de&endpoint=fdroid`)
.intercept(nock =>
nock(base2).get(path2).reply(200, `{"packageName":"${testPkg}"}`),
)
.expectBadge({ label: 'f-droid', message: 'no packages found' })

/* If this test fails, either the API has changed or the app was deleted. */
t.create('custom repo: The real api did not change')
.get('/v/com.looker.droidify.json')
.expectBadge({
label: 'f-droid',
message: isVPlusDottedVersionAtLeastOne,
})

0 comments on commit 9e935be

Please sign in to comment.