// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========

import { describe, expect, it } from 'vitest'
import { FuseManager } from './fuse.ts'

describe('FuseManager (without a real mount)', () => {
  it('starts with mountpoint=null', () => {
    const fm = new FuseManager()
    expect(fm.mountpoint).toBeNull()
  })

  it('allows assigning an external mountpoint via setter', () => {
    const fm = new FuseManager()
    fm.mountpoint = '/tmp/test-fuse'
    expect(fm.mountpoint).toBe('/tmp/test-fuse')
  })

  it('close() is a no-op when the mount is externally set (not auto)', async () => {
    const fm = new FuseManager()
    fm.mountpoint = '/tmp/test-fuse'
    await fm.close()
    expect(fm.mountpoint).toBe('/tmp/test-fuse')
  })

  it('close() is a no-op when no mountpoint is set', async () => {
    const fm = new FuseManager()
    await fm.close()
    expect(fm.mountpoint).toBeNull()
  })
})
