Skip to content

Commit

Permalink
Merge branch 'develop' into multiedit-e2e-tests
Browse files Browse the repository at this point in the history
  • Loading branch information
dzonidoo committed Jul 9, 2024
2 parents c3e8399 + e3d362b commit 96d7f83
Show file tree
Hide file tree
Showing 62 changed files with 1,781 additions and 3,356 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
- run: echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

- run: npm ci
- run: npm run test
- run: npm run test || npm run test || npm run test
env:
TZ: "Europe/Prague"

Expand Down
3 changes: 2 additions & 1 deletion e2e/client/playwright.config.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import {defineConfig, devices} from '@playwright/test';
import path from 'path';

/**
* Read environment variables from file.
Expand Down Expand Up @@ -40,7 +41,7 @@ export default defineConfig({
name: 'chromium',
use: {
...devices['Desktop Chrome'],
storageState: 'playwright/.auth/user.json',
storageState: path.join(__dirname, './playwright/.auth/user.json'),
},
},

Expand Down
2,959 changes: 821 additions & 2,138 deletions package-lock.json

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@
"sass-loader": "6.0.6",
"shortid": "2.2.8",
"style-loader": "0.20.2",
"superdesk-ui-framework": "3.1.9",
"superdesk-ui-framework": "^3.1.14",
"ts-loader": "3.5.0",
"typescript": "4.9.5",
"uuid": "8.3.1",
Expand All @@ -141,7 +141,7 @@
"enzyme-adapter-react-16": "^1.15.5",
"grunt-karma": "^2.0.0",
"jasmine-core": "^2.99.1",
"karma": "^2.0.0",
"karma": "^6.4.3",
"karma-chrome-launcher": "^2.2.0",
"karma-jasmine": "^1.1.1",
"karma-ng-html2js-preprocessor": "^1.0.0",
Expand Down
145 changes: 78 additions & 67 deletions scripts/apps/archive/tests/family.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,62 +41,57 @@ describe('family service', () => {
});
}));

it('can fetch members of a family', inject(($rootScope, familyService, api) => {
let members = null;

it('can fetch members of a family', (done) => inject(($rootScope, familyService, api) => {
familyService.fetchItems('family1')
.then((result) => {
members = result;
.then((members) => {
expect(members._items.length).toBe(2);
done();
});

$rootScope.$digest();
expect(members._items.length).toBe(2);
}));

it('can fetch members of a family with exclusion', inject(($rootScope, familyService, api) => {
let members = null;

it('can fetch members of a family with exclusion', (done) => inject(($rootScope, familyService, api) => {
familyService.fetchItems('family1', {unique_id: 1, _id: 'z'})
.then((result) => {
members = result;
.then((members) => {
expect(members._items.length).toBe(1);
done();
});

$rootScope.$digest();
expect(members._items.length).toBe(1);
}));

it('can fetch desks of members of a family', inject(($rootScope, familyService, api, desks) => {
let memberDesks = null;

it('can fetch desks of members of a family', (done) => inject(($rootScope, familyService) => {
familyService.fetchDesks({_id: 'z', family_id: 'family1'})
.then((result) => {
memberDesks = result;
.then((memberDesks) => {
expect(memberDesks.length).toBe(1);
done();
});

$rootScope.$digest();
expect(memberDesks.length).toBe(1);
}));

it('can determine weather a user is member of fetched desk',
inject(($rootScope, familyService, api, desks) => {
let memberDesks = null;

(done) => inject(($rootScope, familyService) => {
familyService.fetchDesks({_id: 'z', family_id: 'family1', task: {desk: 'desk1'}})
.then((result) => {
memberDesks = result;
.then((memberDesks) => {
expect(memberDesks.length).toBe(1);
expect(memberDesks[0].isUserDeskMember).toBe(true);
done();
});

$rootScope.$digest();
expect(memberDesks.length).toBe(1);
expect(memberDesks[0].isUserDeskMember).toBe(true);
}));

it('can fetch desks of members of a family with exclusion',
inject(($rootScope, familyService, api, desks) => {
let memberDesks = null;

(done) => inject(($rootScope, familyService) => {
familyService.fetchDesks({unique_id: 1, _id: 'z', family_id: 'family1'}, true)
.then((result) => {
memberDesks = result;
.then((memberDesks) => {
expect(memberDesks.length).toBe(0);
done();
});

$rootScope.$digest();
expect(memberDesks.length).toBe(0);
}));

it('can use item._id for ingest items instead of family id',
Expand All @@ -114,7 +109,7 @@ describe('family service', () => {
event_id: 1,
};

it('can query related items', inject(($rootScope, $q, familyService, api) => {
it('can query related items', (done) => inject(($rootScope, $q, familyService, api) => {
const query = {
repo: 'archive,published',
source: {
Expand All @@ -136,44 +131,52 @@ describe('family service', () => {
};

spyOn(api, 'query').and.returnValue($q.when());
familyService.fetchRelatedItems({event_id: 1}).then();

familyService.fetchRelatedItems({event_id: 1}).then(() => {
expect(api.query).toHaveBeenCalledWith('search', query);
done();
});
$rootScope.$digest();
expect(api.query).toHaveBeenCalledWith('search', query);
}));

it('can query relatable items with empty match criteria', inject(($rootScope, $q, familyService, api) => {
const query = {
repo: 'archive,published',
source: {
query: {
filtered: {
filter: {
and: [
{not: {term: {state: 'spiked'}}},
{not: {term: {event_id: 1}}},
{not: {term: {type: 'composite'}}},
{not: {term: {last_published_version: 'false'}}},
{term: {type: 'text'}},
],
},
query: {
query_string: {query: 'slugline.phrase:("test")', lenient: true},
it('can query relatable items with empty match criteria',
(done) => inject(($rootScope, $q, familyService, api) => {
const query = {
repo: 'archive,published',
source: {
query: {
filtered: {
filter: {
and: [
{not: {term: {state: 'spiked'}}},
{not: {term: {event_id: 1}}},
{not: {term: {type: 'composite'}}},
{not: {term: {last_published_version: 'false'}}},
{term: {type: 'text'}},
],
},
query: {
query_string: {query: 'slugline.phrase:("test")', lenient: true},
},
},
},
size: 200,
from: 0,
sort: {firstcreated: 'asc'},
},
size: 200,
from: 0,
sort: {firstcreated: 'asc'},
},
};
};

spyOn(api, 'query').and.returnValue($q.when());
familyService.fetchRelatableItems('test', '', item).then();
$rootScope.$digest();
expect(api.query).toHaveBeenCalledWith('search', query);
}));
spyOn(api, 'query').and.returnValue($q.when());

it('can query relatable items with prefix criteria', inject(($rootScope, $q, familyService, api) => {
familyService.fetchRelatableItems('test', '', item).then(() => {
expect(api.query).toHaveBeenCalledWith('search', query);
done();
});

$rootScope.$digest();
}));

it('can query relatable items with prefix criteria', (done) => inject(($rootScope, $q, familyService, api) => {
const query = {
repo: 'archive,published',
source: {
Expand All @@ -200,12 +203,16 @@ describe('family service', () => {
};

spyOn(api, 'query').and.returnValue($q.when());
familyService.fetchRelatableItems('test', 'PREFIX', item).then();

familyService.fetchRelatableItems('test', 'PREFIX', item).then(() => {
expect(api.query).toHaveBeenCalledWith('search', query);
done();
});

$rootScope.$digest();
expect(api.query).toHaveBeenCalledWith('search', query);
}));

it('can query relatable items with date range', inject(($rootScope, $q, familyService, api) => {
it('can query relatable items with date range', (done) => inject(($rootScope, $q, familyService, api) => {
const query = {
repo: 'archive,published',
source: {
Expand Down Expand Up @@ -233,9 +240,13 @@ describe('family service', () => {
};

spyOn(api, 'query').and.returnValue($q.when());
familyService.fetchRelatableItems('test', 'PREFIX', item, '48-h').then();

familyService.fetchRelatableItems('test', 'PREFIX', item, '48-h').then(() => {
expect(api.query).toHaveBeenCalledWith('search', query);
done();
});

$rootScope.$digest();
expect(api.query).toHaveBeenCalledWith('search', query);
}));
});
});
Loading

0 comments on commit 96d7f83

Please sign in to comment.