Skip to content
Snippets Groups Projects

Add ability to evict and ban URLs from the Pleroma MediaProxy cache

Merged Angelina Filippova requested to merge feature/cache-invalidation into develop
Files
3
@@ -198,6 +198,30 @@ describe('Parse tuples', () => {
expect(_.isEqual(expectedResult, result)).toBeTruthy()
})
it('parses crontab setting', () => {
const tuples = [{ tuple: [':crontab', [
{ tuple: ['0 0 * * *', 'Pleroma.Workers.Cron.ClearOauthTokenWorker'] },
{ tuple: ['0 * * * *', 'Pleroma.Workers.Cron.StatsWorker'] },
{ tuple: ['* * * * *', 'Pleroma.Workers.Cron.PurgeExpiredActivitiesWorker']}
]]}]
const expectedResult = { ':crontab': [
{ 'Pleroma.Workers.Cron.ClearOauthTokenWorker': { value: '0 0 * * *'}},
{ 'Pleroma.Workers.Cron.StatsWorker': { value: '0 * * * *'}},
{ 'Pleroma.Workers.Cron.PurgeExpiredActivitiesWorker': { value: '* * * * *'}}
]}
const parsed = parseTuples(tuples, 'Oban')
expect(typeof parsed).toBe('object')
expect(':crontab' in parsed).toBeTruthy()
const result = { ...parsed, ':crontab': parsed[':crontab'].map(el => {
const key = Object.keys(el)[0]
const { id, ...rest } = el[key]
return { [key]: rest }
})}
expect(_.isEqual(expectedResult, result)).toBeTruthy()
})
it('parses match_actor setting in mrf_subchain group', () => {
const tuples = [{ tuple: [":match_actor",
{ '~r/https:\/\/example.com/s': ["Elixir.Pleroma.Web.ActivityPub.MRF.DropPolicy"]}]}]
@@ -216,6 +240,26 @@ describe('Parse tuples', () => {
expect(_.isEqual(expectedResult, result)).toBeTruthy()
})
it('parses options setting in MediaProxy.Invalidation.Http group', () => {
const tuples = [{ tuple: [":options", [{ tuple: [":params", { xxx: "zzz", aaa: "bbb" }]}]]}]
const expectedResult = { ':options': { ':params':
[ { xxx: { value: 'zzz' }}, { aaa: { value: 'bbb' }}]
}}
const parsed = parseTuples(tuples, 'Pleroma.Web.MediaProxy.Invalidation.Http')
expect(typeof parsed).toBe('object')
expect(':options' in parsed).toBeTruthy()
const idRemoved = parsed[':options'][':params'].map(el => {
const key = Object.keys(el)[0]
const { id, ...rest } = el[key]
return { [key]: rest }
})
parsed[':options'][':params'] = idRemoved
expect(_.isEqual(expectedResult, parsed)).toBeTruthy()
})
it('parses proxy_url', () => {
const proxyUrlNull = [{ tuple: [":proxy_url", null] }]
const proxyUrlTuple = [{ tuple: [":proxy_url", { tuple: [":socks5", ":localhost", 3090] }]}]
Loading