add submissions data to stories and publications
This commit is contained in:
parent
e9079d3489
commit
d4f4d16dc4
|
@ -4,9 +4,16 @@ export class Data {
|
||||||
this.#db = db
|
this.#db = db
|
||||||
}
|
}
|
||||||
async init() {
|
async init() {
|
||||||
this.stories = await this.getStories()
|
|
||||||
this.publications = await this.getPublications()
|
|
||||||
this.submissions = await this.getSubmissions()
|
this.submissions = await this.getSubmissions()
|
||||||
|
this.stories = await this.getStories()
|
||||||
|
this.stories.map(row=>{
|
||||||
|
row.submissions=this.getSubmissionsByStoryId(row.id)
|
||||||
|
})
|
||||||
|
this.publications = await this.getPublications()
|
||||||
|
this.publications.map(row=>{
|
||||||
|
row.submissions=this.getSubmissionsByPublicationId(row.id)
|
||||||
|
})
|
||||||
|
return this
|
||||||
}
|
}
|
||||||
async getStories() {
|
async getStories() {
|
||||||
return this.#db('stories')
|
return this.#db('stories')
|
||||||
|
@ -33,4 +40,12 @@ export class Data {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getSubmissionsByStoryId(id){
|
||||||
|
return this.submissions.filter(row=>row.story_id==id)
|
||||||
|
}
|
||||||
|
|
||||||
|
getSubmissionsByPublicationId(id){
|
||||||
|
return this.submissions.filter(row=>row.pub_id==id)
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -6,8 +6,7 @@ import { Data } from "../objects/Data.mjs";
|
||||||
describe("Testing Data object...",function(){
|
describe("Testing Data object...",function(){
|
||||||
|
|
||||||
it("once initiated, it should serve arrays at .stories, .publications, and .submissions",async function(){
|
it("once initiated, it should serve arrays at .stories, .publications, and .submissions",async function(){
|
||||||
const data = new Data(db)
|
const data = await new Data(db).init()
|
||||||
await data.init()
|
|
||||||
expect(data.stories).to.be.a('array')
|
expect(data.stories).to.be.a('array')
|
||||||
expect(data.submissions).to.be.a('array')
|
expect(data.submissions).to.be.a('array')
|
||||||
expect(data.publications).to.be.a('array')
|
expect(data.publications).to.be.a('array')
|
||||||
|
@ -38,4 +37,38 @@ describe("Testing Data object...",function(){
|
||||||
expect(row).to.contain.key('id')
|
expect(row).to.contain.key('id')
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
it("every entry in .stories and .publications should contain an .submissions field", async function(){
|
||||||
|
const data = await new Data(db).init()
|
||||||
|
for (const row of data.stories) {
|
||||||
|
expect(row).to.contain.key('submissions')
|
||||||
|
}
|
||||||
|
for (const row of data.publications) {
|
||||||
|
expect(row).to.contain.key('submissions')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
it("the submissions field of the .stories and .publications array should itself be an array",async function(){
|
||||||
|
const data = await new Data(db).init()
|
||||||
|
for (const row of data.stories) {
|
||||||
|
expect(row.submissions).to.be.a('array')
|
||||||
|
}
|
||||||
|
for (const row of data.publications) {
|
||||||
|
expect(row.submissions).to.be.a('array')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
it("once initiated, it should serve arrays at .getSubmissionsByStoryId and getSubmissionsByPublicationId()",async function(){
|
||||||
|
const data = new Data(db)
|
||||||
|
await data.init()
|
||||||
|
expect(data.getSubmissionsByStoryId()).to.be.a('array')
|
||||||
|
expect(data.getSubmissionsByPublicationId()).to.be.a('array')
|
||||||
|
} )
|
||||||
|
it("when passed a valid id, every entry in the arrays returned by .getSubmissionsByStoryId and getSubmissionsByPublicationId() should contain an .id field", async function(){
|
||||||
|
const data = new Data(db)
|
||||||
|
await data.init()
|
||||||
|
for (const row of data.getSubmissionsByStoryId(1)) {
|
||||||
|
expect(row).to.contain.key('id')
|
||||||
|
}
|
||||||
|
for (const row of data.getSubmissionsByPublicationId(1)) {
|
||||||
|
expect(row).to.contain.key('id')
|
||||||
|
}
|
||||||
|
})
|
||||||
})
|
})
|
Loading…
Reference in New Issue