From e96e9c0d5c95ee8df27614799a72ec1b558a46a1 Mon Sep 17 00:00:00 2001 From: Wyatt Johnson Date: Wed, 6 Sep 2017 09:18:22 -0600 Subject: [PATCH] Fixed old story search query --- .../Moderation/components/StorySearch.js | 6 +- .../Moderation/containers/StorySearch.js | 14 +- test/server/routes/api/assets/index.js | 162 ++++++++---------- 3 files changed, 85 insertions(+), 97 deletions(-) diff --git a/client/coral-admin/src/routes/Moderation/components/StorySearch.js b/client/coral-admin/src/routes/Moderation/components/StorySearch.js index 748f80b0f..7ac18f907 100644 --- a/client/coral-admin/src/routes/Moderation/components/StorySearch.js +++ b/client/coral-admin/src/routes/Moderation/components/StorySearch.js @@ -8,7 +8,7 @@ const StorySearch = (props) => { const { root: { - assets = [] + assets, }, data: {loading} } = props; @@ -62,7 +62,7 @@ const StorySearch = (props) => { { loading ? - : assets.map((story, i) => { + : assets.nodes.map((story, i) => { const storyOpen = story.closedAt === null || new Date(story.closedAt) > new Date(); return { }) } - {assets.length === 0 &&
No results
} + {assets.nodes.length === 0 &&
No results
} diff --git a/client/coral-admin/src/routes/Moderation/containers/StorySearch.js b/client/coral-admin/src/routes/Moderation/containers/StorySearch.js index 04472d219..04aab2d84 100644 --- a/client/coral-admin/src/routes/Moderation/containers/StorySearch.js +++ b/client/coral-admin/src/routes/Moderation/containers/StorySearch.js @@ -89,12 +89,14 @@ class StorySearchContainer extends React.Component { export const withAssetSearchQuery = withQuery(gql` query SearchStories($value: String = "") { assets(query: {value: $value, limit: 10}) { - id - title - url - created_at - closedAt - author + nodes { + id + title + url + created_at + closedAt + author + } } } `, { diff --git a/test/server/routes/api/assets/index.js b/test/server/routes/api/assets/index.js index daccd5511..855b30271 100644 --- a/test/server/routes/api/assets/index.js +++ b/test/server/routes/api/assets/index.js @@ -3,7 +3,7 @@ const passport = require('../../../passport'); const app = require('../../../../../app'); const chai = require('chai'); -chai.should(); +chai.use(require('chai-as-promised')); chai.use(require('chai-http')); const expect = chai.expect; @@ -13,139 +13,125 @@ const SettingsService = require('../../../../../services/settings'); describe('/api/v1/assets', () => { - beforeEach(() => { + beforeEach(async () => { const settings = {id: '1', moderation: 'PRE', domains: {whitelist: ['test.com']}}; - return SettingsService.init(settings).then(() => { - return AssetModel.create([ - { - url: 'https://coralproject.net/news/asset1', - title: 'Asset 1', - description: 'term1', - closedAt: Date.now() - }, - { - url: 'https://coralproject.net/news/asset2', - title: 'Asset 2', - description: 'term2', - closedAt: null - } - ]); - }); + await SettingsService.init(settings); + + await AssetModel.create([ + { + url: 'https://coralproject.net/news/asset1', + title: 'Asset 1', + description: 'term1', + closedAt: Date.now() + }, + { + url: 'https://coralproject.net/news/asset2', + title: 'Asset 2', + description: 'term2', + closedAt: null + } + ]); }); describe('#get', () => { - it('should return all assets without a search query', () => { - return chai.request(app) + it('should return all assets without a search query', async () => { + const res = await chai.request(app) .get('/api/v1/assets') - .set(passport.inject({roles: ['ADMIN']})) - .then((res) => { - const body = res.body; + .set(passport.inject({roles: ['ADMIN']})); - expect(body).to.have.property('count', 2); - expect(body).to.have.property('result'); + const body = res.body; - const assets = body.result; + expect(body).to.have.property('count', 2); + expect(body).to.have.property('result'); - expect(assets).to.have.length(2); - }); + const assets = body.result; + + expect(assets).to.have.length(2); }); - it('should return assets that we search for', () => { - return chai.request(app) + it('should return assets that we search for', async () => { + const res = await chai.request(app) .get('/api/v1/assets?search=term2') - .set(passport.inject({roles: ['ADMIN']})) - .then((res) => { - const body = res.body; + .set(passport.inject({roles: ['ADMIN']})); - expect(body).to.have.property('count', 1); - expect(body).to.have.property('result'); + const body = res.body; - const assets = body.result; + expect(body).to.have.property('count', 1); + expect(body).to.have.property('result'); - expect(assets).to.have.length(1); + const assets = body.result; - const asset = assets[0]; + expect(assets).to.have.length(1); - expect(asset).to.have.property('url', 'https://coralproject.net/news/asset2'); - expect(asset).to.have.property('title', 'Asset 2'); - }); + const asset = assets[0]; + + expect(asset).to.have.property('url', 'https://coralproject.net/news/asset2'); + expect(asset).to.have.property('title', 'Asset 2'); }); - it('should not return assets that we do not search for', () => { - return chai.request(app) + it('should not return assets that we do not search for', async () => { + const res = await chai.request(app) .get('/api/v1/assets?search=term3') - .set(passport.inject({roles: ['ADMIN']})) - .then((res) => { - const body = res.body; + .set(passport.inject({roles: ['ADMIN']})); + const body = res.body; - expect(body).to.have.property('count', 0); - expect(body).to.have.property('result'); + expect(body).to.have.property('count', 0); + expect(body).to.have.property('result'); - expect(body.result).to.be.empty; - }); + expect(body.result).to.be.empty; }); - it('should return only closed assets', () => { - return chai.request(app) + it('should return only closed assets', async () => { + const res = await chai.request(app) .get('/api/v1/assets?filter=closed') - .set(passport.inject({roles: ['ADMIN']})) - .then((res) => { - const body = res.body; + .set(passport.inject({roles: ['ADMIN']})); + const body = res.body; - expect(body).to.have.property('count', 1); - expect(body).to.have.property('result'); + expect(body).to.have.property('count', 1); + expect(body).to.have.property('result'); - const assets = body.result; + const assets = body.result; - expect(assets[0]).to.have.property('title', 'Asset 1'); - }); + expect(assets[0]).to.have.property('title', 'Asset 1'); }); - it('should return only opened assets', () => { - return chai.request(app) + it('should return only opened assets', async () => { + const res = await chai.request(app) .get('/api/v1/assets?filter=open') - .set(passport.inject({roles: ['ADMIN']})) - .then((res) => { - const body = res.body; + .set(passport.inject({roles: ['ADMIN']})); + const body = res.body; - expect(body).to.have.property('count', 1); - expect(body).to.have.property('result'); + expect(body).to.have.property('count', 1); + expect(body).to.have.property('result'); - const assets = body.result; + const assets = body.result; - expect(assets[0]).to.have.property('title', 'Asset 2'); - }); + expect(assets[0]).to.have.property('title', 'Asset 2'); }); }); describe('#put', () => { - it('should close the asset', function() { + it('should close the asset', async () => { const today = Date.now(); - return AssetsService.findOrCreateByUrl('http://test.com') - .then((asset) => { - expect(asset).to.have.property('isClosed', false); - expect(asset).to.have.property('closedAt', null); + const asset = await AssetsService.findOrCreateByUrl('http://test.com'); + expect(asset).to.have.property('isClosed', false); + expect(asset).to.have.property('closedAt', null); - return chai.request(app) - .put(`/api/v1/assets/${asset.id}/status`) - .set(passport.inject({roles: ['ADMIN']})) - .send({closedAt: today}); - }) - .then((res) => { + const res = await chai.request(app) + .put(`/api/v1/assets/${asset.id}/status`) + .set(passport.inject({roles: ['ADMIN']})) + .send({closedAt: today}); - expect(res).to.have.status(204); + expect(res).to.have.status(204); - return AssetsService.findByUrl('http://test.com'); - }) - .then((asset) => { - expect(asset).to.have.property('isClosed', true); - expect(asset).to.have.property('closedAt').and.to.not.equal(null); - }); + const closedAsset = await AssetsService.findByUrl('http://test.com'); + expect(closedAsset).to.have.property('isClosed', true); + expect(closedAsset).to.have.property('closedAt').and.to.not.equal(null); }); });