mirror of
https://github.com/overleaf/overleaf.git
synced 2025-04-09 16:09:08 +00:00
Add acceptance test for project linked files
This commit is contained in:
parent
73184c063e
commit
e34131ed45
3 changed files with 92 additions and 4 deletions
|
@ -17,6 +17,7 @@ services:
|
|||
PROJECT_HISTORY_ENABLED: 'true'
|
||||
ENABLED_LINKED_FILE_TYPES: 'url'
|
||||
LINKED_URL_PROXY: 'http://localhost:6543'
|
||||
ENABLED_LINKED_FILE_TYPES: 'url,project_file'
|
||||
depends_on:
|
||||
- redis
|
||||
- mongo
|
||||
|
|
|
@ -27,6 +27,81 @@ describe "LinkedFiles", ->
|
|||
@owner.login ->
|
||||
mkdirp Settings.path.dumpFolder, done
|
||||
|
||||
describe "creating a project linked file", ->
|
||||
before (done) ->
|
||||
@source_doc_name = 'test.txt'
|
||||
async.series [
|
||||
(cb) =>
|
||||
@owner.createProject 'plf-test-one', {template: 'blank'}, (error, project_id) =>
|
||||
@project_one_id = project_id
|
||||
cb(error)
|
||||
(cb) =>
|
||||
@owner.getProject @project_one_id, (error, project) =>
|
||||
@project_one = project
|
||||
@project_one_root_folder_id = project.rootFolder[0]._id.toString()
|
||||
cb(error)
|
||||
(cb) =>
|
||||
@owner.createProject 'plf-test-two', {template: 'blank'}, (error, project_id) =>
|
||||
@project_two_id = project_id
|
||||
cb(error)
|
||||
(cb) =>
|
||||
@owner.getProject @project_two_id, (error, project) =>
|
||||
@project_two = project
|
||||
@project_two_root_folder_id = project.rootFolder[0]._id.toString()
|
||||
cb(error)
|
||||
(cb) =>
|
||||
@owner.createDocInProject @project_two_id,
|
||||
@project_two_root_folder_id,
|
||||
@source_doc_name,
|
||||
(error, doc_id) =>
|
||||
@source_doc_id = doc_id
|
||||
cb(error)
|
||||
], done
|
||||
|
||||
it 'should import a file from the source project', (done) ->
|
||||
@owner.request.post {
|
||||
url: "/project/#{@project_one_id}/linked_file",
|
||||
json:
|
||||
name: 'test-link.txt',
|
||||
parent_folder_id: @project_one_root_folder_id,
|
||||
provider: 'project_file',
|
||||
data:
|
||||
source_project_id: @project_two_id,
|
||||
source_entity_path: "/#{@source_doc_name}",
|
||||
source_project_display_name: "Project Two"
|
||||
}, (error, response, body) =>
|
||||
new_file_id = body.new_file_id
|
||||
@existing_file_id = new_file_id
|
||||
expect(new_file_id).to.exist
|
||||
@owner.getProject @project_one_id, (error, project) =>
|
||||
return done(error) if error?
|
||||
firstFile = project.rootFolder[0].fileRefs[0]
|
||||
expect(firstFile._id.toString()).to.equal(new_file_id.toString())
|
||||
expect(firstFile.name).to.equal('test-link.txt')
|
||||
done()
|
||||
|
||||
it 'should refresh the file', (done) ->
|
||||
@owner.request.post {
|
||||
url: "/project/#{@project_one_id}/linked_file",
|
||||
json:
|
||||
name: 'test-link.txt',
|
||||
parent_folder_id: @project_one_root_folder_id,
|
||||
provider: 'project_file',
|
||||
data:
|
||||
source_project_id: @project_two_id,
|
||||
source_entity_path: "/#{@source_doc_name}",
|
||||
source_project_display_name: "Project Two"
|
||||
}, (error, response, body) =>
|
||||
new_file_id = body.new_file_id
|
||||
expect(new_file_id).to.exist
|
||||
expect(new_file_id).to.not.equal @existing_file_id
|
||||
@owner.getProject @project_one_id, (error, project) =>
|
||||
return done(error) if error?
|
||||
firstFile = project.rootFolder[0].fileRefs[0]
|
||||
expect(firstFile._id.toString()).to.equal(new_file_id.toString())
|
||||
expect(firstFile.name).to.equal('test-link.txt')
|
||||
done()
|
||||
|
||||
describe "creating a URL based linked file", ->
|
||||
before (done) ->
|
||||
@owner.createProject "url-linked-files-project", {template: "blank"}, (error, project_id) =>
|
||||
|
@ -50,7 +125,7 @@ describe "LinkedFiles", ->
|
|||
name: 'url-test-file-1'
|
||||
}, (error, response, body) =>
|
||||
throw error if error?
|
||||
expect(response.statusCode).to.equal 204
|
||||
expect(response.statusCode).to.equal 200
|
||||
@owner.getProject @project_id, (error, project) =>
|
||||
throw error if error?
|
||||
file = project.rootFolder[0].fileRefs[0]
|
||||
|
@ -76,7 +151,7 @@ describe "LinkedFiles", ->
|
|||
name: 'url-test-file-2'
|
||||
}, (error, response, body) =>
|
||||
throw error if error?
|
||||
expect(response.statusCode).to.equal 204
|
||||
expect(response.statusCode).to.equal 200
|
||||
@owner.request.post {
|
||||
url: "/project/#{@project_id}/linked_file",
|
||||
json:
|
||||
|
@ -88,7 +163,7 @@ describe "LinkedFiles", ->
|
|||
name: 'url-test-file-2'
|
||||
}, (error, response, body) =>
|
||||
throw error if error?
|
||||
expect(response.statusCode).to.equal 204
|
||||
expect(response.statusCode).to.equal 200
|
||||
@owner.getProject @project_id, (error, project) =>
|
||||
throw error if error?
|
||||
file = project.rootFolder[0].fileRefs[1]
|
||||
|
@ -168,7 +243,7 @@ describe "LinkedFiles", ->
|
|||
name: 'url-test-file-6'
|
||||
}, (error, response, body) =>
|
||||
throw error if error?
|
||||
expect(response.statusCode).to.equal 204
|
||||
expect(response.statusCode).to.equal 200
|
||||
@owner.getProject @project_id, (error, project) =>
|
||||
throw error if error?
|
||||
file = _.find project.rootFolder[0].fileRefs, (file) ->
|
||||
|
|
|
@ -137,6 +137,18 @@ class User
|
|||
return callback(err)
|
||||
callback(null)
|
||||
|
||||
createDocInProject: (project_id, parent_folder_id, name, callback=(error, doc_id)->) ->
|
||||
@getCsrfToken (error) =>
|
||||
return callback(error) if error?
|
||||
@request.post {
|
||||
url: "/project/#{project_id}/doc",
|
||||
json: {
|
||||
name: name,
|
||||
parent_folder_id: parent_folder_id
|
||||
}
|
||||
}, (error, response, body) =>
|
||||
callback(null, body._id)
|
||||
|
||||
addUserToProject: (project_id, user, privileges, callback = (error, user) ->) ->
|
||||
if privileges == 'readAndWrite'
|
||||
updateOp = {$addToSet: {collaberator_refs: user._id.toString()}}
|
||||
|
|
Loading…
Add table
Reference in a new issue